相关疑难解决方法(0)

SQL - 友谊表的最佳实践

在你向我展示重复之前,请注意我在网站上搜索了一些已找到的例子,但对我的问题并不十分具体:)

在SQL中创建友谊表的最佳方法是什么,但确保每一行都是唯一的,即不管属于哪个列,相同的UserID和FriendID永远不会被赋予?

我有这个粗略的例子

CREATE TABLE [dbo].[Friendship](
    [UserID] [uniqueidentifier] NOT NULL,
    [FriendID] [uniqueidentifier] NOT NULL,
    [FriendshipStatus] [int] NOT NULL
)
Run Code Online (Sandbox Code Playgroud)

User表和FriendID共有2个Users表的外键.

目前,我可以在用户之间插入友谊两次,从而创建一个副本.例

UserID    FriendID    FriendshipStatus
Guid 123   Guid 789    1
Guid 789   Guid 123    1
Run Code Online (Sandbox Code Playgroud)

我如何确保强制执行这种完整性,可能是2个PK?某种独特的指数?或者你会建议一起更好的桌子设计吗?另外,你会自动增量FriendshipID吗?如果是这样,你能解释一下原因吗?

sql t-sql sql-server database-design data-modeling

11
推荐指数
2
解决办法
7818
查看次数

标签 统计

data-modeling ×1

database-design ×1

sql ×1

sql-server ×1

t-sql ×1