11BEGIN ;
22
3- CREATE TABLE IF NOT EXISTS ObjectType
4- (
5- TypeName TEXT PRIMARY KEY
6- );
7- CREATE TABLE IF NOT EXISTS Object
3+
4+ CREATE TABLE Object
85(
9- ObjectId SERIAL PRIMARY KEY ,
10- ObjectName TEXT NOT NULL ,
11- ObjectType TEXT NOT NULL REFERENCES ObjectType(TypeName)
6+ ObjectName TEXT PRIMARY KEY ,
7+ IsGroup BOOLEAN NOT NULL DEFAULT FALSE,
8+ RelatedGroup INTEGER REFERENCES Object(ObjectName) DEFAULT NULL ,
9+
10+ CONSTRAINT RelatedGroup CHECK (IsGrpop is FALSE OR IsGroup IS TRUE AND RelatedGroup IS NULL )
1211);
13- CREATE TABLE IF NOT EXISTS AvilableAction
12+ CREATE TABLE AvilableAction
1413(
1514 ActionName TEXT PRIMARY KEY ,
1615);
17- CREATE TABLE IF NOT EXISTS Event
16+ CREATE TABLE Event
1817(
1918 EventId SERIAL PRIMARY KEY ,
2019 Action TEXT NOT NULL REFERENCES AvilableAction(ActionName),
21- PreviousEvent INTEGER REFERENCES Action(ActionId),
20+ PreviousEvent INTEGER REFERENCES Action(ActionId) DEFAULT NULL ,
2221
23- ActionTargetObject INTEGER REFERENCES Object(ObjectId),
24- ActionTargetType TEXT REFERENCES ObjectType(TypeName),
25- ActionInitiator INTEGER REFERENCES Object(ObjectId),
22+ Target INTEGER REFERENCES Object(ObjectName),
23+ Initiator INTEGER REFERENCES Object(ObjectName),
2624
27- CONSTRAINT EeitherTargetOrInitiator CHECK (ActionTargetObject IS NOT NULL OR ActionTargetType IS NOT NULL OR ActionInitiator IS NOT NULL )
25+ CONSTRAINT EeitherTargetOrInitiator CHECK (Target IS NOT NULL OR Initiator IS NOT NULL )
2826);
2927
30- INSERT INTO ObjectType(TypeName)
31- VALUES
32- (' Глупые питекантропы' ),
33- (' Способные питекантропы' ),
34- (' Мысли' ),
35- (' Природные объекты' );
36-
37- INSERT INTO Object(ObjectName, ObjectType)
28+ INSERT INTO Object(ObjectName, IsGroup, RelatedGroup)
3829VALUES
39- (' Смотрящий на Луну' , ' Способные питекантропы' ),
40- (' Кристалл' , ' Природные объекты' ),
41- (' Видения' , ' Мысли' ),
42- (' Щупальца' , ' Мысли' );
30+ (' Глупые питекантропы' , TRUE),
31+ (' Способные питекантропы' , TRUE),
32+ (' Мысли' , TRUE),
33+ (' Смотрящий на Луну' , FALSE, 2 ),
34+ (' Кристалл' ),
35+ (' Видения' , FALSE, 3 ),
36+ (' Щупальца' , FALSE, 3 );
4337
4438INSERT INTO AvilableAction(ActionName)
4539VALUES
@@ -49,12 +43,12 @@ VALUES
4943 (' Шариться в закаулках мозга' ),
5044 (' Начаться' );
5145
52- INSERT INTO Action (Action, PreviousEvent, ActionTargetObject, ActionTargetType, ActionInitiator )
46+ INSERT INTO Event (Action, Target, Initiator, PreviousEvent )
5347VALUES
54- (' Оставить в покое' , NULL , NULL , ' Глупые питекантропы' , 2 ), -- Крсталл оставил некоторых питекантропов в покое
55- (' Сосредоточить внимание' , NULL , NULL , ' Способные питекантропы' , 2 ), -- Кристалл сосредоточил внимание на способных питекантропах
56- (' Почувствовать' , NULL , 1 , NULL , NULL ), -- Смотрящий на Луну почувствовал
57- (' Шариться в закаулках мозга' , NULL , 1 , NULL , 4 ), -- Щупальца шарятся в закаулках мозга Смотрящего на Луну
58- (' Начаться' , 4 , 1 , NULL , 3 ); -- Затем у Смотрящего на Луну начались видения
48+ (' Оставить в покое' , ' Глупые питекантропы' , ' Кристалл ' ), -- Крсталл оставил некоторых питекантропов в покое
49+ (' Сосредоточить внимание' , ' Способные питекантропы' , ' Кристалл ' ), -- Кристалл сосредоточил внимание на способных питекантропах
50+ (' Почувствовать' , ' Смотрящий на Луну ' , NULL ), -- Смотрящий на Луну почувствовал
51+ (' Шариться в закаулках мозга' , ' Щупальца ' , NULL , 3 ), -- Щупальца шарятся в закаулках мозга Смотрящего на Луну
52+ (' Начаться' , ' Видения ' , NULL , 4 ); -- Затем у Смотрящего на Луну начались видения
5953
6054END;
0 commit comments