ここの情報は古いです。ご理解頂いた上でお取り扱いください。

source: OpenPNE3/trunk/data/sql/lib.model.schema.sql @ 7855

Last change on this file since 7855 was 7855, checked in by ebihara, 13 years ago

#2860:フレンドリンク機能の追加

File size: 4.3 KB
Line 
1
2# This is a fix for InnoDB in MySQL >= 4.1.x
3# It "suspends judgement" for fkey relationships until are tables are set.
4SET FOREIGN_KEY_CHECKS = 0;
5
6#-----------------------------------------------------------------------------
7#-- member
8#-----------------------------------------------------------------------------
9
10DROP TABLE IF EXISTS `member`;
11
12
13CREATE TABLE `member`
14(
15        `id` INTEGER  NOT NULL AUTO_INCREMENT,
16        `is_active` INTEGER  NOT NULL,
17        `created_at` DATETIME,
18        `updated_at` DATETIME,
19        PRIMARY KEY (`id`)
20)Type=InnoDB;
21
22#-----------------------------------------------------------------------------
23#-- profile
24#-----------------------------------------------------------------------------
25
26DROP TABLE IF EXISTS `profile`;
27
28
29CREATE TABLE `profile`
30(
31        `id` INTEGER  NOT NULL AUTO_INCREMENT,
32        `name` VARCHAR(64)  NOT NULL,
33        `is_required` INTEGER  NOT NULL,
34        `is_unique` INTEGER  NOT NULL,
35        `form_type` VARCHAR(32)  NOT NULL,
36        `value_type` VARCHAR(32)  NOT NULL,
37        `value_regexp` TEXT,
38        `value_min` INTEGER,
39        `value_max` INTEGER,
40        `is_disp_regist` INTEGER  NOT NULL,
41        `is_disp_config` INTEGER  NOT NULL,
42        `is_disp_search` INTEGER  NOT NULL,
43        `sort_order` INTEGER,
44        PRIMARY KEY (`id`),
45        UNIQUE KEY `profile_U_1` (`name`)
46)Type=InnoDB;
47
48#-----------------------------------------------------------------------------
49#-- profile_i18n
50#-----------------------------------------------------------------------------
51
52DROP TABLE IF EXISTS `profile_i18n`;
53
54
55CREATE TABLE `profile_i18n`
56(
57        `caption` TEXT  NOT NULL,
58        `info` TEXT,
59        `id` INTEGER  NOT NULL,
60        `culture` VARCHAR(7)  NOT NULL,
61        PRIMARY KEY (`id`,`culture`),
62        CONSTRAINT `profile_i18n_FK_1`
63                FOREIGN KEY (`id`)
64                REFERENCES `profile` (`id`)
65                ON DELETE CASCADE
66)Type=InnoDB;
67
68#-----------------------------------------------------------------------------
69#-- profile_option
70#-----------------------------------------------------------------------------
71
72DROP TABLE IF EXISTS `profile_option`;
73
74
75CREATE TABLE `profile_option`
76(
77        `id` INTEGER  NOT NULL AUTO_INCREMENT,
78        `profile_id` INTEGER,
79        `sort_order` INTEGER,
80        PRIMARY KEY (`id`),
81        INDEX `profile_option_FI_1` (`profile_id`),
82        CONSTRAINT `profile_option_FK_1`
83                FOREIGN KEY (`profile_id`)
84                REFERENCES `profile` (`id`)
85)Type=InnoDB;
86
87#-----------------------------------------------------------------------------
88#-- profile_option_i18n
89#-----------------------------------------------------------------------------
90
91DROP TABLE IF EXISTS `profile_option_i18n`;
92
93
94CREATE TABLE `profile_option_i18n`
95(
96        `value` TEXT,
97        `id` INTEGER  NOT NULL,
98        `culture` VARCHAR(7)  NOT NULL,
99        PRIMARY KEY (`id`,`culture`),
100        CONSTRAINT `profile_option_i18n_FK_1`
101                FOREIGN KEY (`id`)
102                REFERENCES `profile_option` (`id`)
103                ON DELETE CASCADE
104)Type=InnoDB;
105
106#-----------------------------------------------------------------------------
107#-- member_profile
108#-----------------------------------------------------------------------------
109
110DROP TABLE IF EXISTS `member_profile`;
111
112
113CREATE TABLE `member_profile`
114(
115        `id` INTEGER  NOT NULL AUTO_INCREMENT,
116        `member_id` INTEGER,
117        `profile_id` INTEGER,
118        `profile_option_id` INTEGER,
119        `value` TEXT,
120        PRIMARY KEY (`id`),
121        INDEX `member_profile_FI_1` (`member_id`),
122        CONSTRAINT `member_profile_FK_1`
123                FOREIGN KEY (`member_id`)
124                REFERENCES `member` (`id`),
125        INDEX `member_profile_FI_2` (`profile_id`),
126        CONSTRAINT `member_profile_FK_2`
127                FOREIGN KEY (`profile_id`)
128                REFERENCES `profile` (`id`),
129        INDEX `member_profile_FI_3` (`profile_option_id`),
130        CONSTRAINT `member_profile_FK_3`
131                FOREIGN KEY (`profile_option_id`)
132                REFERENCES `profile_option` (`id`)
133)Type=InnoDB;
134
135#-----------------------------------------------------------------------------
136#-- friend
137#-----------------------------------------------------------------------------
138
139DROP TABLE IF EXISTS `friend`;
140
141
142CREATE TABLE `friend`
143(
144        `id` INTEGER  NOT NULL AUTO_INCREMENT,
145        `member_id_to` INTEGER  NOT NULL,
146        `member_id_from` INTEGER  NOT NULL,
147        PRIMARY KEY (`id`),
148        UNIQUE KEY `member_id_to_from` (`member_id_to`, `member_id_from`),
149        UNIQUE KEY `member_id_from_to` (`member_id_from`, `member_id_to`),
150        CONSTRAINT `friend_FK_1`
151                FOREIGN KEY (`member_id_to`)
152                REFERENCES `member` (`id`),
153        CONSTRAINT `friend_FK_2`
154                FOREIGN KEY (`member_id_from`)
155                REFERENCES `member` (`id`)
156)Type=InnoDB;
157
158# This restores the fkey checks, after having unset them earlier
159SET FOREIGN_KEY_CHECKS = 1;
Note: See TracBrowser for help on using the repository browser.