Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.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_Relationship - Fatal编程技术网

SQL关系和最佳实践

SQL关系和最佳实践,sql,relationship,Sql,Relationship,如果我有一个用户表和一个角色表 添加关系的通常做法/模式是什么 我是在用户表中为RoleID创建一个额外的列,还是人们通常会这样创建一个关系表: 关系表 最后,作为一个用户,你可能会创建无数不同类型的东西,这些东西都需要与你相关。。。而是将关系添加到为每个单独的事物创建的每个单独的表中。。例如: 页数表 因此,另一张表也类似于此: 评论表 在这种情况下,如果要这样做,我需要扩展Relationships表: 关系表 我可能只想填写UserID和CommentID,因为这种关系不适用于角色。。。由

如果我有一个用户表和一个角色表

添加关系的通常做法/模式是什么

我是在用户表中为RoleID创建一个额外的列,还是人们通常会这样创建一个关系表:

关系表

最后,作为一个用户,你可能会创建无数不同类型的东西,这些东西都需要与你相关。。。而是将关系添加到为每个单独的事物创建的每个单独的表中。。例如:

页数表

因此,另一张表也类似于此:

评论表

在这种情况下,如果要这样做,我需要扩展Relationships表:

关系表

我可能只想填写UserID和CommentID,因为这种关系不适用于角色。。。由另一个条目管理的。例如,可以为注释关系输入值:

AUTO           | 2      | NULL   | 16
我可以想象一个多用途的修订表很方便

修订表

实际上应该是这样的:

关系表新建


如果一个用户具有多个角色,并且一个角色可以由多个用户承担,则您具有多对多关系。您需要关系表relationshipId字段是不必要的。有些人认为无论如何,拥有一个是个好主意。我不是那种人。有人能给我演示一下我的关系表是什么样子的吗?我在我的OP底部关系表中尝试了一下,这看起来还好吗?
PageID | Title | Content | Author (UserID)
CommentID | Comment | Author (UserID)
RelationshipID | UserID | RoleID | CommentID
AUTO           | 2      | NULL   | 16
RevisionID | DateCreated | UserID | ActionTypeID | ModelTypeID | Status | RelatedItemID
---------------------------------------------------------------------------------------
1          | <Now>       | 3      | 4 (Delete)   | 6 (Page)    | TRUE   | 38
2          | <Now>       | 3      | 1 (Delete)   | 5 (Comment) | TRUE   | 10
3          | <Now>       | 3      | 1 (Add)      | 5 (Comment) | FALSE  | 10
RelationshipID | UserID | RoleID | CommentID... etc
RelationshipID | ItemID        | LinkID     | ItemType    | LinkType | Status
---------------------------------------------------------------------------------
1              | 23(PageID)    | 7(UserID)  | ("Page")    | ("User") | TRUE
2              | 22(CommentID) | 7(UserID)  | ("Comment") | ("User") | TRUE
3              | 22(CommentID) | 23(PageID) | ("Comment") | ("Page") | TRUE