composite_primary_keys 12.0.8 → 13.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/History.rdoc +888 -874
- data/README.rdoc +181 -180
- data/lib/composite_primary_keys/active_model/attribute_assignment.rb +19 -19
- data/lib/composite_primary_keys/associations/association_scope.rb +66 -68
- data/lib/composite_primary_keys/associations/join_dependency.rb +137 -103
- data/lib/composite_primary_keys/attribute_methods/primary_key.rb +0 -2
- data/lib/composite_primary_keys/attribute_methods/read.rb +30 -30
- data/lib/composite_primary_keys/attribute_methods/write.rb +35 -35
- data/lib/composite_primary_keys/attribute_methods.rb +21 -9
- data/lib/composite_primary_keys/base.rb +141 -141
- data/lib/composite_primary_keys/composite_predicates.rb +2 -1
- data/lib/composite_primary_keys/connection_adapters/abstract/database_statements.rb +37 -22
- data/lib/composite_primary_keys/connection_adapters/sqlserver/database_statements.rb +44 -44
- data/lib/composite_primary_keys/core.rb +48 -48
- data/lib/composite_primary_keys/nested_attributes.rb +1 -1
- data/lib/composite_primary_keys/persistence.rb +82 -81
- data/lib/composite_primary_keys/reflection.rb +91 -29
- data/lib/composite_primary_keys/relation/batches.rb +15 -7
- data/lib/composite_primary_keys/relation/calculations.rb +104 -81
- data/lib/composite_primary_keys/relation/finder_methods.rb +235 -235
- data/lib/composite_primary_keys/relation/predicate_builder/association_query_value.rb +39 -20
- data/lib/composite_primary_keys/relation/query_methods.rb +42 -42
- data/lib/composite_primary_keys/relation/where_clause.rb +18 -23
- data/lib/composite_primary_keys/relation.rb +197 -193
- data/lib/composite_primary_keys/table_metadata.rb +11 -0
- data/lib/composite_primary_keys/version.rb +8 -8
- data/lib/composite_primary_keys.rb +119 -119
- data/test/abstract_unit.rb +114 -114
- data/test/connections/databases.ci.yml +22 -22
- data/test/fixtures/db_definitions/db2-create-tables.sql +112 -112
- data/test/fixtures/db_definitions/db2-drop-tables.sql +16 -16
- data/test/fixtures/db_definitions/mysql.sql +180 -180
- data/test/fixtures/db_definitions/oracle.drop.sql +41 -41
- data/test/fixtures/db_definitions/oracle.sql +199 -199
- data/test/fixtures/db_definitions/postgresql.sql +182 -182
- data/test/fixtures/db_definitions/sqlite.sql +169 -169
- data/test/fixtures/db_definitions/sqlserver.sql +176 -176
- data/test/fixtures/department.rb +16 -16
- data/test/fixtures/departments.yml +19 -15
- data/test/fixtures/employees.yml +33 -28
- data/test/fixtures/membership.rb +8 -6
- data/test/fixtures/restaurants_suburbs.yml +10 -10
- data/test/fixtures/streets.yml +16 -16
- data/test/fixtures/suburbs.yml +14 -14
- data/test/fixtures/user.rb +11 -11
- data/test/test_associations.rb +372 -358
- data/test/test_attributes.rb +75 -60
- data/test/test_calculations.rb +49 -42
- data/test/test_create.rb +218 -206
- data/test/test_delete.rb +188 -179
- data/test/test_exists.rb +39 -39
- data/test/test_find.rb +170 -164
- data/test/test_ids.rb +112 -112
- data/test/test_nested_attributes.rb +67 -67
- data/test/test_update.rb +102 -96
- metadata +6 -6
- data/lib/composite_primary_keys/connection_adapters/mysql/database_statements.rb +0 -24
@@ -1,170 +1,170 @@
|
|
1
|
-
create table reference_types (
|
2
|
-
reference_type_id integer primary key,
|
3
|
-
type_label varchar(50) default null,
|
4
|
-
abbreviation varchar(50) default null,
|
5
|
-
description varchar(50) default null
|
6
|
-
);
|
7
|
-
|
8
|
-
create table reference_codes (
|
9
|
-
reference_type_id int,
|
10
|
-
reference_code int not null,
|
11
|
-
code_label varchar(50) default null,
|
12
|
-
abbreviation varchar(50) default null,
|
13
|
-
description varchar(50) default null,
|
14
|
-
primary key (reference_type_id, reference_code)
|
15
|
-
);
|
16
|
-
|
17
|
-
create table products (
|
18
|
-
id int not null primary key,
|
19
|
-
name varchar(50) default null,
|
20
|
-
created_at TIMESTAMP,
|
21
|
-
updated_at TIMESTAMP
|
22
|
-
);
|
23
|
-
|
24
|
-
create table tariffs (
|
25
|
-
tariff_id int not null,
|
26
|
-
start_date date not null,
|
27
|
-
amount integer(11) default null,
|
28
|
-
created_at TIMESTAMP,
|
29
|
-
updated_at TIMESTAMP,
|
30
|
-
primary key (tariff_id, start_date)
|
31
|
-
);
|
32
|
-
|
33
|
-
create table product_tariffs (
|
34
|
-
product_id int not null,
|
35
|
-
tariff_id int not null,
|
36
|
-
tariff_start_date date not null,
|
37
|
-
primary key (product_id, tariff_id, tariff_start_date)
|
38
|
-
);
|
39
|
-
|
40
|
-
create table suburbs (
|
41
|
-
city_id int identity(1,1) not null,
|
42
|
-
suburb_id int identity(1,1) not null,
|
43
|
-
name varchar(50) not null,
|
44
|
-
primary key (city_id, suburb_id)
|
45
|
-
);
|
46
|
-
|
47
|
-
create table streets (
|
48
|
-
id integer not null primary key autoincrement,
|
49
|
-
city_id int not null,
|
50
|
-
suburb_id int not null,
|
51
|
-
name varchar(50) not null
|
52
|
-
);
|
53
|
-
|
54
|
-
create table users (
|
55
|
-
id integer not null primary key autoincrement,
|
56
|
-
name varchar(50) not null
|
57
|
-
);
|
58
|
-
|
59
|
-
create table articles (
|
60
|
-
id integer not null primary key autoincrement,
|
61
|
-
name varchar(50) not null
|
62
|
-
);
|
63
|
-
|
64
|
-
create table readings (
|
65
|
-
id integer not null primary key autoincrement,
|
66
|
-
user_id int not null,
|
67
|
-
article_id int not null,
|
68
|
-
rating int not null
|
69
|
-
);
|
70
|
-
|
71
|
-
create table groups (
|
72
|
-
id integer not null primary key autoincrement,
|
73
|
-
name varchar(50) not null
|
74
|
-
);
|
75
|
-
|
76
|
-
create table memberships (
|
77
|
-
user_id int not null,
|
78
|
-
group_id int not null,
|
79
|
-
primary key (user_id, group_id)
|
80
|
-
);
|
81
|
-
|
82
|
-
create table membership_statuses (
|
83
|
-
id integer not null primary key autoincrement,
|
84
|
-
user_id int not null,
|
85
|
-
group_id int not null,
|
86
|
-
status varchar(50) not null
|
87
|
-
);
|
88
|
-
|
89
|
-
create table departments (
|
90
|
-
id integer not null,
|
91
|
-
location_id integer not null,
|
92
|
-
primary key (id, location_id)
|
93
|
-
);
|
94
|
-
|
95
|
-
create table employees (
|
96
|
-
id integer not null primary key autoincrement,
|
97
|
-
department_id integer null,
|
98
|
-
location_id integer null,
|
99
|
-
name varchar(50) not null
|
100
|
-
);
|
101
|
-
|
102
|
-
create table comments (
|
103
|
-
id integer not null primary key autoincrement,
|
104
|
-
article_id int not null,
|
105
|
-
person_id int not null,
|
106
|
-
person_type varchar(100) not null
|
107
|
-
);
|
108
|
-
|
109
|
-
create table restaurants (
|
110
|
-
franchise_id integer not null,
|
111
|
-
store_id integer not null,
|
112
|
-
name varchar(100),
|
113
|
-
lock_version integer default 0,
|
114
|
-
primary key (franchise_id, store_id)
|
115
|
-
);
|
116
|
-
|
117
|
-
create table restaurants_suburbs (
|
118
|
-
franchise_id integer not null,
|
119
|
-
store_id integer not null,
|
120
|
-
city_id integer not null,
|
121
|
-
suburb_id integer not null
|
122
|
-
);
|
123
|
-
|
124
|
-
create table dorms (
|
125
|
-
id integer not null primary key autoincrement
|
126
|
-
);
|
127
|
-
|
128
|
-
create table rooms (
|
129
|
-
dorm_id integer not null,
|
130
|
-
room_id integer not null,
|
131
|
-
primary key (dorm_id, room_id)
|
132
|
-
);
|
133
|
-
|
134
|
-
create table room_attributes (
|
135
|
-
id integer not null primary key autoincrement,
|
136
|
-
name varchar(50)
|
137
|
-
);
|
138
|
-
|
139
|
-
create table room_attribute_assignments (
|
140
|
-
dorm_id integer not null,
|
141
|
-
room_id integer not null,
|
142
|
-
room_attribute_id integer not null
|
143
|
-
);
|
144
|
-
|
145
|
-
create table students (
|
146
|
-
id integer not null primary key autoincrement
|
147
|
-
);
|
148
|
-
|
149
|
-
create table room_assignments (
|
150
|
-
student_id integer not null,
|
151
|
-
dorm_id integer not null,
|
152
|
-
room_id integer not null
|
153
|
-
);
|
154
|
-
|
155
|
-
create table capitols (
|
156
|
-
country text not null,
|
157
|
-
city text not null,
|
158
|
-
primary key (country, city)
|
159
|
-
);
|
160
|
-
|
161
|
-
create table products_restaurants (
|
162
|
-
product_id integer not null,
|
163
|
-
franchise_id integer not null,
|
164
|
-
store_id integer not null
|
165
|
-
);
|
166
|
-
|
167
|
-
create table employees_groups (
|
168
|
-
employee_id integer not null,
|
169
|
-
group_id integer not null
|
1
|
+
create table reference_types (
|
2
|
+
reference_type_id integer primary key,
|
3
|
+
type_label varchar(50) default null,
|
4
|
+
abbreviation varchar(50) default null,
|
5
|
+
description varchar(50) default null
|
6
|
+
);
|
7
|
+
|
8
|
+
create table reference_codes (
|
9
|
+
reference_type_id int,
|
10
|
+
reference_code int not null,
|
11
|
+
code_label varchar(50) default null,
|
12
|
+
abbreviation varchar(50) default null,
|
13
|
+
description varchar(50) default null,
|
14
|
+
primary key (reference_type_id, reference_code)
|
15
|
+
);
|
16
|
+
|
17
|
+
create table products (
|
18
|
+
id int not null primary key,
|
19
|
+
name varchar(50) default null,
|
20
|
+
created_at TIMESTAMP,
|
21
|
+
updated_at TIMESTAMP
|
22
|
+
);
|
23
|
+
|
24
|
+
create table tariffs (
|
25
|
+
tariff_id int not null,
|
26
|
+
start_date date not null,
|
27
|
+
amount integer(11) default null,
|
28
|
+
created_at TIMESTAMP,
|
29
|
+
updated_at TIMESTAMP,
|
30
|
+
primary key (tariff_id, start_date)
|
31
|
+
);
|
32
|
+
|
33
|
+
create table product_tariffs (
|
34
|
+
product_id int not null,
|
35
|
+
tariff_id int not null,
|
36
|
+
tariff_start_date date not null,
|
37
|
+
primary key (product_id, tariff_id, tariff_start_date)
|
38
|
+
);
|
39
|
+
|
40
|
+
create table suburbs (
|
41
|
+
city_id int identity(1,1) not null,
|
42
|
+
suburb_id int identity(1,1) not null,
|
43
|
+
name varchar(50) not null,
|
44
|
+
primary key (city_id, suburb_id)
|
45
|
+
);
|
46
|
+
|
47
|
+
create table streets (
|
48
|
+
id integer not null primary key autoincrement,
|
49
|
+
city_id int not null,
|
50
|
+
suburb_id int not null,
|
51
|
+
name varchar(50) not null
|
52
|
+
);
|
53
|
+
|
54
|
+
create table users (
|
55
|
+
id integer not null primary key autoincrement,
|
56
|
+
name varchar(50) not null
|
57
|
+
);
|
58
|
+
|
59
|
+
create table articles (
|
60
|
+
id integer not null primary key autoincrement,
|
61
|
+
name varchar(50) not null
|
62
|
+
);
|
63
|
+
|
64
|
+
create table readings (
|
65
|
+
id integer not null primary key autoincrement,
|
66
|
+
user_id int not null,
|
67
|
+
article_id int not null,
|
68
|
+
rating int not null
|
69
|
+
);
|
70
|
+
|
71
|
+
create table groups (
|
72
|
+
id integer not null primary key autoincrement,
|
73
|
+
name varchar(50) not null
|
74
|
+
);
|
75
|
+
|
76
|
+
create table memberships (
|
77
|
+
user_id int not null,
|
78
|
+
group_id int not null,
|
79
|
+
primary key (user_id, group_id)
|
80
|
+
);
|
81
|
+
|
82
|
+
create table membership_statuses (
|
83
|
+
id integer not null primary key autoincrement,
|
84
|
+
user_id int not null,
|
85
|
+
group_id int not null,
|
86
|
+
status varchar(50) not null
|
87
|
+
);
|
88
|
+
|
89
|
+
create table departments (
|
90
|
+
id integer not null,
|
91
|
+
location_id integer not null,
|
92
|
+
primary key (id, location_id)
|
93
|
+
);
|
94
|
+
|
95
|
+
create table employees (
|
96
|
+
id integer not null primary key autoincrement,
|
97
|
+
department_id integer null,
|
98
|
+
location_id integer null,
|
99
|
+
name varchar(50) not null
|
100
|
+
);
|
101
|
+
|
102
|
+
create table comments (
|
103
|
+
id integer not null primary key autoincrement,
|
104
|
+
article_id int not null,
|
105
|
+
person_id int not null,
|
106
|
+
person_type varchar(100) not null
|
107
|
+
);
|
108
|
+
|
109
|
+
create table restaurants (
|
110
|
+
franchise_id integer not null,
|
111
|
+
store_id integer not null,
|
112
|
+
name varchar(100),
|
113
|
+
lock_version integer default 0,
|
114
|
+
primary key (franchise_id, store_id)
|
115
|
+
);
|
116
|
+
|
117
|
+
create table restaurants_suburbs (
|
118
|
+
franchise_id integer not null,
|
119
|
+
store_id integer not null,
|
120
|
+
city_id integer not null,
|
121
|
+
suburb_id integer not null
|
122
|
+
);
|
123
|
+
|
124
|
+
create table dorms (
|
125
|
+
id integer not null primary key autoincrement
|
126
|
+
);
|
127
|
+
|
128
|
+
create table rooms (
|
129
|
+
dorm_id integer not null,
|
130
|
+
room_id integer not null,
|
131
|
+
primary key (dorm_id, room_id)
|
132
|
+
);
|
133
|
+
|
134
|
+
create table room_attributes (
|
135
|
+
id integer not null primary key autoincrement,
|
136
|
+
name varchar(50)
|
137
|
+
);
|
138
|
+
|
139
|
+
create table room_attribute_assignments (
|
140
|
+
dorm_id integer not null,
|
141
|
+
room_id integer not null,
|
142
|
+
room_attribute_id integer not null
|
143
|
+
);
|
144
|
+
|
145
|
+
create table students (
|
146
|
+
id integer not null primary key autoincrement
|
147
|
+
);
|
148
|
+
|
149
|
+
create table room_assignments (
|
150
|
+
student_id integer not null,
|
151
|
+
dorm_id integer not null,
|
152
|
+
room_id integer not null
|
153
|
+
);
|
154
|
+
|
155
|
+
create table capitols (
|
156
|
+
country text not null,
|
157
|
+
city text not null,
|
158
|
+
primary key (country, city)
|
159
|
+
);
|
160
|
+
|
161
|
+
create table products_restaurants (
|
162
|
+
product_id integer not null,
|
163
|
+
franchise_id integer not null,
|
164
|
+
store_id integer not null
|
165
|
+
);
|
166
|
+
|
167
|
+
create table employees_groups (
|
168
|
+
employee_id integer not null,
|
169
|
+
group_id integer not null
|
170
170
|
);
|
@@ -1,177 +1,177 @@
|
|
1
|
-
USE [composite_primary_keys_unittest];
|
2
|
-
|
3
|
-
CREATE TABLE reference_types (
|
4
|
-
reference_type_id [int] IDENTITY(1000,1) NOT NULL,
|
5
|
-
type_label [varchar](50) NULL,
|
6
|
-
abbreviation [varchar](50) NULL,
|
7
|
-
description [varchar](50) NULL
|
8
|
-
);
|
9
|
-
|
10
|
-
CREATE TABLE reference_codes (
|
11
|
-
reference_type_id [int],
|
12
|
-
reference_code [int],
|
13
|
-
code_label [varchar](50) NULL,
|
14
|
-
abbreviation [varchar](50) NULL,
|
15
|
-
description [varchar](50) NULL
|
16
|
-
);
|
17
|
-
|
18
|
-
CREATE TABLE products (
|
19
|
-
id [int] IDENTITY(1000,1) NOT NULL,
|
20
|
-
name [varchar](50) NULL
|
21
|
-
);
|
22
|
-
|
23
|
-
CREATE TABLE tariffs (
|
24
|
-
[tariff_id] [int],
|
25
|
-
[start_date] [date],
|
26
|
-
[amount] [int] NULL,
|
27
|
-
[created_at] [datetimeoffset](7) NOT NULL,
|
28
|
-
[updated_at] [datetimeoffset](7) NOT NULL
|
29
|
-
CONSTRAINT [tariffs_pk] PRIMARY KEY
|
30
|
-
( [tariff_id], [start_date] )
|
31
|
-
);
|
32
|
-
|
33
|
-
CREATE TABLE product_tariffs (
|
34
|
-
[product_id] [int],
|
35
|
-
[tariff_id] [int],
|
36
|
-
[tariff_start_date] [date]
|
37
|
-
CONSTRAINT [product_tariffs_pk] PRIMARY KEY
|
38
|
-
( [product_id], [tariff_id], [tariff_start_date] )
|
39
|
-
);
|
40
|
-
|
41
|
-
CREATE TABLE suburbs (
|
42
|
-
city_id [int],
|
43
|
-
suburb_id [int],
|
44
|
-
name varchar(50) not null,
|
45
|
-
CONSTRAINT [suburbs_pk] PRIMARY KEY
|
46
|
-
( [city_id], [suburb_id] )
|
47
|
-
);
|
48
|
-
|
49
|
-
CREATE TABLE streets (
|
50
|
-
id [int] IDENTITY(1000,1) NOT NULL,
|
51
|
-
city_id [int] NOT NULL,
|
52
|
-
suburb_id [int] NOT NULL,
|
53
|
-
name [varchar](50) NOT NULL
|
54
|
-
);
|
55
|
-
|
56
|
-
CREATE TABLE users (
|
57
|
-
id [int] IDENTITY(1000,1) NOT NULL,
|
58
|
-
name varchar(50) NOT NULL
|
59
|
-
);
|
60
|
-
|
61
|
-
CREATE TABLE articles (
|
62
|
-
id [int] IDENTITY(1000,1) NOT NULL,
|
63
|
-
name varchar(50) NOT NULL
|
64
|
-
);
|
65
|
-
|
66
|
-
CREATE TABLE readings (
|
67
|
-
id [int] PRIMARY KEY,
|
68
|
-
user_id [int] NOT NULL,
|
69
|
-
article_id [int] NOT NULL,
|
70
|
-
rating [int] NOT NULL
|
71
|
-
);
|
72
|
-
|
73
|
-
CREATE TABLE groups (
|
74
|
-
id [int] IDENTITY(1000,1) NOT NULL,
|
75
|
-
name [varchar](50) NOT NULL
|
76
|
-
);
|
77
|
-
|
78
|
-
CREATE TABLE memberships (
|
79
|
-
user_id [int] NOT NULL,
|
80
|
-
group_id [int] NOT NULL
|
81
|
-
CONSTRAINT [memberships_pk] PRIMARY KEY
|
82
|
-
( [user_id], [group_id] )
|
83
|
-
);
|
84
|
-
|
85
|
-
CREATE TABLE membership_statuses (
|
86
|
-
id [int] IDENTITY(1,1) NOT NULL,
|
87
|
-
user_id [int] not null,
|
88
|
-
group_id [int] not null,
|
89
|
-
status varchar(50) not null
|
90
|
-
);
|
91
|
-
|
92
|
-
CREATE TABLE departments (
|
93
|
-
id [int] IDENTITY(100,1) NOT NULL,
|
94
|
-
location_id [int] NOT NULL
|
95
|
-
CONSTRAINT [departments_pk] PRIMARY KEY
|
96
|
-
( [id], [location_id] )
|
97
|
-
);
|
98
|
-
|
99
|
-
CREATE TABLE employees (
|
100
|
-
id [int] IDENTITY(1000,1) NOT NULL,
|
101
|
-
department_id [int] NULL,
|
102
|
-
location_id [int] NULL,
|
103
|
-
name [varchar](50) NOT NULL
|
104
|
-
);
|
105
|
-
|
106
|
-
CREATE TABLE comments (
|
107
|
-
id [int] IDENTITY(1000,1) PRIMARY KEY NOT NULL,
|
108
|
-
article_id [int] NOT NULL,
|
109
|
-
person_id [int] NOT NULL,
|
110
|
-
person_type varchar(100) NULL
|
111
|
-
);
|
112
|
-
|
113
|
-
CREATE TABLE restaurants (
|
114
|
-
franchise_id [int] NOT NULL,
|
115
|
-
store_id [int] NOT NULL,
|
116
|
-
name [varchar](100),
|
117
|
-
lock_version [int] DEFAULT 0
|
118
|
-
CONSTRAINT [restaurants_pk] PRIMARY KEY CLUSTERED
|
119
|
-
( [franchise_id], [store_id] )
|
120
|
-
);
|
121
|
-
|
122
|
-
CREATE TABLE restaurants_suburbs (
|
123
|
-
franchise_id [int] NOT NULL,
|
124
|
-
store_id [int] NOT NULL,
|
125
|
-
city_id [int] NOT NULL,
|
126
|
-
suburb_id [int] NOT NULL
|
127
|
-
);
|
128
|
-
|
129
|
-
CREATE TABLE dorms (
|
130
|
-
id [int] IDENTITY(1000,1) PRIMARY KEY NOT NULL
|
131
|
-
);
|
132
|
-
|
133
|
-
CREATE TABLE rooms (
|
134
|
-
dorm_id [int] NOT NULL,
|
135
|
-
room_id [int] NOT NULL,
|
136
|
-
CONSTRAINT [rooms_pk] PRIMARY KEY CLUSTERED
|
137
|
-
( [dorm_id], [room_id] )
|
138
|
-
);
|
139
|
-
|
140
|
-
CREATE TABLE room_attributes (
|
141
|
-
id [int] IDENTITY(1000,1) PRIMARY KEY NOT NULL,
|
142
|
-
name [varchar](50)
|
143
|
-
);
|
144
|
-
|
145
|
-
CREATE TABLE room_attribute_assignments (
|
146
|
-
dorm_id [int] NOT NULL,
|
147
|
-
room_id [int] NOT NULL,
|
148
|
-
room_attribute_id [int] NOT NULL
|
149
|
-
);
|
150
|
-
|
151
|
-
CREATE TABLE students (
|
152
|
-
id [int] IDENTITY(1000,1) PRIMARY KEY NOT NULL
|
153
|
-
);
|
154
|
-
|
155
|
-
CREATE TABLE room_assignments (
|
156
|
-
student_id [int] NOT NULL,
|
157
|
-
dorm_id [int] NOT NULL,
|
158
|
-
room_id [int] NOT NULL
|
159
|
-
);
|
160
|
-
|
161
|
-
CREATE TABLE capitols (
|
162
|
-
country varchar(450) NOT NULL,
|
163
|
-
city varchar(450) NOT NULL
|
164
|
-
CONSTRAINT [capitols_pk] PRIMARY KEY
|
165
|
-
( [country], [city] )
|
166
|
-
);
|
167
|
-
|
168
|
-
CREATE TABLE products_restaurants (
|
169
|
-
product_id [int] NOT NULL,
|
170
|
-
franchise_id [int] NOT NULL,
|
171
|
-
store_id [int] NOT NULL
|
172
|
-
);
|
173
|
-
|
174
|
-
CREATE TABLE employees_groups (
|
175
|
-
employee_id [int] not null,
|
176
|
-
group_id [int] not null
|
1
|
+
USE [composite_primary_keys_unittest];
|
2
|
+
|
3
|
+
CREATE TABLE reference_types (
|
4
|
+
reference_type_id [int] IDENTITY(1000,1) NOT NULL,
|
5
|
+
type_label [varchar](50) NULL,
|
6
|
+
abbreviation [varchar](50) NULL,
|
7
|
+
description [varchar](50) NULL
|
8
|
+
);
|
9
|
+
|
10
|
+
CREATE TABLE reference_codes (
|
11
|
+
reference_type_id [int],
|
12
|
+
reference_code [int],
|
13
|
+
code_label [varchar](50) NULL,
|
14
|
+
abbreviation [varchar](50) NULL,
|
15
|
+
description [varchar](50) NULL
|
16
|
+
);
|
17
|
+
|
18
|
+
CREATE TABLE products (
|
19
|
+
id [int] IDENTITY(1000,1) NOT NULL,
|
20
|
+
name [varchar](50) NULL
|
21
|
+
);
|
22
|
+
|
23
|
+
CREATE TABLE tariffs (
|
24
|
+
[tariff_id] [int],
|
25
|
+
[start_date] [date],
|
26
|
+
[amount] [int] NULL,
|
27
|
+
[created_at] [datetimeoffset](7) NOT NULL,
|
28
|
+
[updated_at] [datetimeoffset](7) NOT NULL
|
29
|
+
CONSTRAINT [tariffs_pk] PRIMARY KEY
|
30
|
+
( [tariff_id], [start_date] )
|
31
|
+
);
|
32
|
+
|
33
|
+
CREATE TABLE product_tariffs (
|
34
|
+
[product_id] [int],
|
35
|
+
[tariff_id] [int],
|
36
|
+
[tariff_start_date] [date]
|
37
|
+
CONSTRAINT [product_tariffs_pk] PRIMARY KEY
|
38
|
+
( [product_id], [tariff_id], [tariff_start_date] )
|
39
|
+
);
|
40
|
+
|
41
|
+
CREATE TABLE suburbs (
|
42
|
+
city_id [int],
|
43
|
+
suburb_id [int],
|
44
|
+
name varchar(50) not null,
|
45
|
+
CONSTRAINT [suburbs_pk] PRIMARY KEY
|
46
|
+
( [city_id], [suburb_id] )
|
47
|
+
);
|
48
|
+
|
49
|
+
CREATE TABLE streets (
|
50
|
+
id [int] IDENTITY(1000,1) NOT NULL,
|
51
|
+
city_id [int] NOT NULL,
|
52
|
+
suburb_id [int] NOT NULL,
|
53
|
+
name [varchar](50) NOT NULL
|
54
|
+
);
|
55
|
+
|
56
|
+
CREATE TABLE users (
|
57
|
+
id [int] IDENTITY(1000,1) NOT NULL,
|
58
|
+
name varchar(50) NOT NULL
|
59
|
+
);
|
60
|
+
|
61
|
+
CREATE TABLE articles (
|
62
|
+
id [int] IDENTITY(1000,1) NOT NULL,
|
63
|
+
name varchar(50) NOT NULL
|
64
|
+
);
|
65
|
+
|
66
|
+
CREATE TABLE readings (
|
67
|
+
id [int] PRIMARY KEY,
|
68
|
+
user_id [int] NOT NULL,
|
69
|
+
article_id [int] NOT NULL,
|
70
|
+
rating [int] NOT NULL
|
71
|
+
);
|
72
|
+
|
73
|
+
CREATE TABLE groups (
|
74
|
+
id [int] IDENTITY(1000,1) NOT NULL,
|
75
|
+
name [varchar](50) NOT NULL
|
76
|
+
);
|
77
|
+
|
78
|
+
CREATE TABLE memberships (
|
79
|
+
user_id [int] NOT NULL,
|
80
|
+
group_id [int] NOT NULL
|
81
|
+
CONSTRAINT [memberships_pk] PRIMARY KEY
|
82
|
+
( [user_id], [group_id] )
|
83
|
+
);
|
84
|
+
|
85
|
+
CREATE TABLE membership_statuses (
|
86
|
+
id [int] IDENTITY(1,1) NOT NULL,
|
87
|
+
user_id [int] not null,
|
88
|
+
group_id [int] not null,
|
89
|
+
status varchar(50) not null
|
90
|
+
);
|
91
|
+
|
92
|
+
CREATE TABLE departments (
|
93
|
+
id [int] IDENTITY(100,1) NOT NULL,
|
94
|
+
location_id [int] NOT NULL
|
95
|
+
CONSTRAINT [departments_pk] PRIMARY KEY
|
96
|
+
( [id], [location_id] )
|
97
|
+
);
|
98
|
+
|
99
|
+
CREATE TABLE employees (
|
100
|
+
id [int] IDENTITY(1000,1) NOT NULL,
|
101
|
+
department_id [int] NULL,
|
102
|
+
location_id [int] NULL,
|
103
|
+
name [varchar](50) NOT NULL
|
104
|
+
);
|
105
|
+
|
106
|
+
CREATE TABLE comments (
|
107
|
+
id [int] IDENTITY(1000,1) PRIMARY KEY NOT NULL,
|
108
|
+
article_id [int] NOT NULL,
|
109
|
+
person_id [int] NOT NULL,
|
110
|
+
person_type varchar(100) NULL
|
111
|
+
);
|
112
|
+
|
113
|
+
CREATE TABLE restaurants (
|
114
|
+
franchise_id [int] NOT NULL,
|
115
|
+
store_id [int] NOT NULL,
|
116
|
+
name [varchar](100),
|
117
|
+
lock_version [int] DEFAULT 0
|
118
|
+
CONSTRAINT [restaurants_pk] PRIMARY KEY CLUSTERED
|
119
|
+
( [franchise_id], [store_id] )
|
120
|
+
);
|
121
|
+
|
122
|
+
CREATE TABLE restaurants_suburbs (
|
123
|
+
franchise_id [int] NOT NULL,
|
124
|
+
store_id [int] NOT NULL,
|
125
|
+
city_id [int] NOT NULL,
|
126
|
+
suburb_id [int] NOT NULL
|
127
|
+
);
|
128
|
+
|
129
|
+
CREATE TABLE dorms (
|
130
|
+
id [int] IDENTITY(1000,1) PRIMARY KEY NOT NULL
|
131
|
+
);
|
132
|
+
|
133
|
+
CREATE TABLE rooms (
|
134
|
+
dorm_id [int] NOT NULL,
|
135
|
+
room_id [int] NOT NULL,
|
136
|
+
CONSTRAINT [rooms_pk] PRIMARY KEY CLUSTERED
|
137
|
+
( [dorm_id], [room_id] )
|
138
|
+
);
|
139
|
+
|
140
|
+
CREATE TABLE room_attributes (
|
141
|
+
id [int] IDENTITY(1000,1) PRIMARY KEY NOT NULL,
|
142
|
+
name [varchar](50)
|
143
|
+
);
|
144
|
+
|
145
|
+
CREATE TABLE room_attribute_assignments (
|
146
|
+
dorm_id [int] NOT NULL,
|
147
|
+
room_id [int] NOT NULL,
|
148
|
+
room_attribute_id [int] NOT NULL
|
149
|
+
);
|
150
|
+
|
151
|
+
CREATE TABLE students (
|
152
|
+
id [int] IDENTITY(1000,1) PRIMARY KEY NOT NULL
|
153
|
+
);
|
154
|
+
|
155
|
+
CREATE TABLE room_assignments (
|
156
|
+
student_id [int] NOT NULL,
|
157
|
+
dorm_id [int] NOT NULL,
|
158
|
+
room_id [int] NOT NULL
|
159
|
+
);
|
160
|
+
|
161
|
+
CREATE TABLE capitols (
|
162
|
+
country varchar(450) NOT NULL,
|
163
|
+
city varchar(450) NOT NULL
|
164
|
+
CONSTRAINT [capitols_pk] PRIMARY KEY
|
165
|
+
( [country], [city] )
|
166
|
+
);
|
167
|
+
|
168
|
+
CREATE TABLE products_restaurants (
|
169
|
+
product_id [int] NOT NULL,
|
170
|
+
franchise_id [int] NOT NULL,
|
171
|
+
store_id [int] NOT NULL
|
172
|
+
);
|
173
|
+
|
174
|
+
CREATE TABLE employees_groups (
|
175
|
+
employee_id [int] not null,
|
176
|
+
group_id [int] not null
|
177
177
|
);
|