Sql 外键联接表
我有两个表,Sql 外键联接表,sql,database,database-design,Sql,Database,Database Design,我有两个表,组和用户,我正在尝试这样做: 是挂起其成员身份的用户(如果组具有私有设置,并且必须首先验证该用户) 用户何时加入该组 等等 出于这个原因,我想知道创建一个新表是否被认为是一个有效的选择,比如groups\u users,它有一个我完全忽略的主键,但它有外键user\u id和group\u id,然后是is\u admin,is\u pending,joined\u on,等等 或者,有没有其他方法不需要制作这样一个表就可以做到这一点?只是看看这个解决方案……我正在实现这个由几个项目
组
和用户
,我正在尝试这样做:
groups\u users
,它有一个我完全忽略的主键,但它有外键user\u id
和group\u id
,然后是is\u admin
,is\u pending
,joined\u on
,等等
或者,有没有其他方法不需要制作这样一个表就可以做到这一点?只是看看这个解决方案……我正在实现这个由几个项目组成的模式
第三张桌子听起来很合理。谢谢你的回复!这种表格的“正确”定义是什么?我正在努力提高我的数据库技能。另一种方法是在users表中创建一组专门用于每个组的列。绝对不是要走的路。我认为你应该查找“桥接表”的定义。这将描述此类表的功能。这允许创建多对多关系。用户可以是多个组的成员&一个组可以有多个成员。酷!非常感谢。我一直在谷歌上搜索这个,我想我应该搜索多对多关系表。谢谢至于主键:您可以将
user\u id
+group\u id
作为主键。或者您可以使用不带主键的表。或者您可以添加一个id并将其作为主键。这些都是有效的选择。无论如何,如果不将user\u id
+group\u id
作为主键,则仍应使其唯一(即在表中添加唯一约束)。很好,但应在group\u users
中添加一些列以支持问题的提出。例如:created\u date
,joined\u date
等等。是的,只需显示该示例,开发人员可以添加其他列。