我有两个表,表Project
和User
。以下是这两个表之间的关系
项目可以与多个用户相关联 用户可以在多个项目上操作
我创建了以下实体关系。这是表示多对多关系的正确方法吗?
User:
id
name
email
Project:
id
name
User_Project:
user_id
project_id
答案 0 :(得分:0)
是的,前提是您已定义外键关系ano De. Cre.B.sadate
56 100 0 100 12/09/2006
57 000 50 50 13/09/2006
56 00 60 40 14/09/2009
和(user_id) REFERENCES "user"(id)
以及(project_id) REFERENCES project(id)
。
BTW,尽量避免在表名和列名中使用混合大小写名称和保留关键字。
答案 1 :(得分:0)
你的方法是正确的。
由于用户可以加入多个项目,因此需要添加联结表。
连接表还可以包含其他列。
在您的情况下,了解用户何时加入项目可能很有用。 因此,您可以在存储该信息的位置添加 join_date 列。
create table users
(
id serial,
name text,
email text,
primary key (id)
);
create table projects
(
id serial,
name text,
primary key (id)
);
create table users_projects
(
user_id int,
project_id int,
join_date date,
primary key (user_id, project_id),
foreign key (user_id) references users (id),
foreign key (project_id) references projects (id)
);