【发布时间】:2011-05-12 07:45:01
【问题描述】:
在您向我展示重复内容之前,请注意,我已经通过该网站进行了搜索,发现了 一些 示例,但并不完全针对我的问题 :)
在 SQL 中创建 Friendship 表的最佳方法是什么,但要确保每一行都是唯一的,因为无论它们属于哪一列,都不会允许使用相同的 UserID 和 FriendID ?
我有这个粗略的例子
CREATE TABLE [dbo].[Friendship](
[UserID] [uniqueidentifier] NOT NULL,
[FriendID] [uniqueidentifier] NOT NULL,
[FriendshipStatus] [int] NOT NULL
)
Users 表有 2 个外键,分别来自 UserID 和 FriendID。
目前,我可以在用户之间两次插入友谊,从而创建一个副本。示例
UserID FriendID FriendshipStatus
Guid 123 Guid 789 1
Guid 789 Guid 123 1
我如何确保这种完整性得到执行,也许 2 PKs?某种唯一索引?或者你会建议一个更好的桌子设计吗?另外,你会放一个自动递增的FriendshipID吗?如果有,你能解释一下原因吗?
【问题讨论】:
标签: sql sql-server tsql database-design data-modeling