Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 外键联接表_Sql_Database_Database Design - Fatal编程技术网

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
    等等。是的,只需显示该示例,开发人员可以添加其他列。