Emmanuel BENOîT
e50775ec76
* The main loader script has been updated to generate the list of files it needs to load automatically. As a consequence, files that contained manually-maintained lists of scripts have been removed, and definition directories have been renamed accordingly. * PostgreSQL extension loading and configuration has been moved to a separate script to be loaded automatically in the main transaction. * Data and function definition scripts that had the -data or -functions suffix have been renamed (the suffix is unnecessary). * Unit tests have been reorganised to follow the definition's structure. * Documentation has been improved
56 lines
1.3 KiB
SQL
56 lines
1.3 KiB
SQL
-- LegacyWorlds Beta 6
|
|
-- PostgreSQL database scripts
|
|
--
|
|
-- Technology definitions
|
|
--
|
|
-- Copyright(C) 2004-2010, DeepClone Development
|
|
-- --------------------------------------------------------
|
|
|
|
|
|
--
|
|
-- Technology lines
|
|
--
|
|
|
|
CREATE TABLE tech.lines(
|
|
name_id INT NOT NULL PRIMARY KEY ,
|
|
description_id INT NOT NULL
|
|
);
|
|
|
|
CREATE INDEX idx_lines_description
|
|
ON tech.lines (description_id);
|
|
|
|
ALTER TABLE tech.lines
|
|
ADD CONSTRAINT fk_lines_name
|
|
FOREIGN KEY (name_id) REFERENCES defs.strings ,
|
|
ADD CONSTRAINT fk_lines_description
|
|
FOREIGN KEY (description_id) REFERENCES defs.strings;
|
|
|
|
|
|
--
|
|
-- Technology levels
|
|
--
|
|
|
|
CREATE TABLE tech.levels(
|
|
id SERIAL NOT NULL PRIMARY KEY ,
|
|
line_id INT NOT NULL ,
|
|
level INT NOT NULL CHECK( level > 0 ) ,
|
|
name_id INT NOT NULL ,
|
|
description_id INT NOT NULL ,
|
|
points INT NOT NULL CHECK( points > 0 ) ,
|
|
cost INT NOT NULL CHECK( cost > 0 )
|
|
);
|
|
|
|
CREATE UNIQUE INDEX idx_levels_linelevel
|
|
ON tech.levels (line_id, level);
|
|
CREATE INDEX idx_levels_name
|
|
ON tech.levels (name_id);
|
|
CREATE INDEX idx_levels_description
|
|
ON tech.levels (description_id);
|
|
|
|
ALTER TABLE tech.levels
|
|
ADD CONSTRAINT fk_levels_line
|
|
FOREIGN KEY (line_id) REFERENCES tech.lines ,
|
|
ADD CONSTRAINT fk_levels_name
|
|
FOREIGN KEY (name_id) REFERENCES defs.strings ,
|
|
ADD CONSTRAINT fk_levels_description
|
|
FOREIGN KEY (description_id) REFERENCES defs.strings;
|