Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ssis/2.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 Design_Foreign Key Relationship - Fatal编程技术网

Sql 如何确定哪些列用作外键?

Sql 如何确定哪些列用作外键?,sql,database-design,foreign-key-relationship,Sql,Database Design,Foreign Key Relationship,我需要一点关于SQL数据库设计的复习,特别是如何以及使用哪些列作为外键 下面是我想出的两个设计,能告诉我哪个更有意义吗?对我来说,我相信设计2似乎更好 编辑: 一个项目只能包含一个团队。一个团队可以有一个或多个团队成员。同样,团队成员可以是一个或多个团队的一部分。我正在使用MicrosoftVisio、UML乌鸦脚符号创建这些图像 我将Project与ProjectTeamOrg分离的主要原因是分离数据,实际上,我将为一个项目提供许多元素,并将它们分离到各自的DB表中 设计1 设计2 告诉我这

我需要一点关于SQL数据库设计的复习,特别是如何以及使用哪些列作为外键

下面是我想出的两个设计,能告诉我哪个更有意义吗?对我来说,我相信设计2似乎更好

编辑:

一个项目只能包含一个团队。一个团队可以有一个或多个团队成员。同样,团队成员可以是一个或多个团队的一部分。我正在使用MicrosoftVisio、UML乌鸦脚符号创建这些图像

我将Project与ProjectTeamOrg分离的主要原因是分离数据,实际上,我将为一个项目提供许多元素,并将它们分离到各自的DB表中

设计1

设计2

告诉我这些表之间的关系。一对一(或)一对多。因为这种关系有助于我们确定表中哪个列应该有外键

配合设计1

根据我所理解的事情

    Tablename         Columnname    Key 
    Project            Projectid   Primary   
    Projectteamorg     Projectid   Foreign(Reference Project(Projectid))   
    Projectteammember  teamid      Primary  
    Projectteamorg     teamid      Foreign(Reference Projectteammember(teamid))

数据库的用途不清楚。你没有解释数据流。我看不到团队表。它在那里吗?或者ProjectTeamOrg是团队表


请解释数据流。这样就可以帮助您了。

这是一对一的关系吗?Project和ProjectTeamOrg表不应该合并吗?您使用哪个工具生成这些图像?=)团队成员可以参与多个项目吗?这个图表就是这样显示的,我只是想确定一下。图中还显示了每个项目只能有一名团队成员——我敢肯定这是错误的。对不起,我今天才回复,周末不在了:(一个项目只能包含一个团队。一个团队可以有一个或多个团队成员。同样,一个团队成员也可以是一个或多个团队的一部分。我正在使用Microsoft Visio、UML Crow Foot表示法创建这些映像。这将是一个完美的注释。映像已经指定了关系,| |表示一对一,>|表示一对多sorry I only)y今天回复,周末离开:(一个项目只能包含一个团队。一个团队可以有一个或多个团队成员。同样,一个团队成员可以是一个或多个团队的一部分。我正在使用Microsoft Visio、UML Crow Foot符号创建这些图像。