This repository has been archived on 2024-07-18. You can view files and clone it, but cannot push or open issues or pull requests.
lwb6/legacyworlds-server/legacyworlds-server-data/db-structure/parts/data/080-techs-data.sql

72 lines
1.8 KiB
SQL

-- LegacyWorlds Beta 6
-- PostgreSQL database scripts
--
-- Technology definitions
--
-- Copyright(C) 2004-2010, DeepClone Development
-- --------------------------------------------------------
--
-- Categories
--
CREATE TABLE tech.categories(
name_id INT NOT NULL PRIMARY KEY ,
description_id INT NOT NULL
);
CREATE INDEX idx_categories_description
ON tech.categories (description_id);
ALTER TABLE tech.categories
ADD CONSTRAINT fk_categories_name
FOREIGN KEY (name_id) REFERENCES defs.strings ,
ADD CONSTRAINT fk_categories_description
FOREIGN KEY (description_id) REFERENCES defs.strings;
--
-- Technologies
--
CREATE TABLE tech.technologies(
name_id INT NOT NULL PRIMARY KEY ,
description_id INT NOT NULL ,
category_id INT NOT NULL ,
points INT NOT NULL CHECK( points > 0 ) ,
cost INT NOT NULL CHECK( cost > 0 )
);
CREATE INDEX idx_technologies_description
ON tech.technologies (description_id);
CREATE INDEX idx_technologies_category
ON tech.technologies (category_id);
ALTER TABLE tech.technologies
ADD CONSTRAINT fk_technologies_category
FOREIGN KEY (category_id) REFERENCES tech.categories ,
ADD CONSTRAINT fk_technologies_name
FOREIGN KEY (name_id) REFERENCES defs.strings ,
ADD CONSTRAINT fk_technologies_description
FOREIGN KEY (description_id) REFERENCES defs.strings;
--
-- Dependencies
--
CREATE TABLE tech.dependencies(
technology_id INT NOT NULL ,
depends_on INT NOT NULL ,
PRIMARY KEY( technology_id , depends_on )
);
CREATE INDEX idx_dependencies_dependson
ON tech.dependencies (depends_on);
ALTER TABLE tech.dependencies
ADD CONSTRAINT fk_dependencies_technology
FOREIGN KEY (technology_id) REFERENCES tech.technologies ,
ADD CONSTRAINT fk_dependencies_dependson
FOREIGN KEY (depends_on) REFERENCES tech.technologies;