0

您好正在制作一个带有评论系统的简单网站。用户可以使用社交网络 ID(FB、Twitter 等)登录或在网站上注册并发表评论(有些用户不会为此使用他们的 FB 帐户)。我有两个可用的表(一个用于 HybridAuth,另一个用于本地用户表)。现在我的问题是如何设计表格和整个系统以实现这种功能?基本上我的问题可以如下解决:评论表需要评论者的ID(来自两者中的任何一个但不是两者的FK)。

那么常用的方法是什么(因为许多网站都使用 disqus、FB、twitter 等)?

如果在 SO 或其他地方有任何链接,我将很高兴得到指出。

4

1 回答 1

1

有两种方法:

#1 独家 FK

在它们之上同时具有 FK 和 CHECK 约束,以确保其中一个为 NULL,如此所述。

请注意,某些 DBMS(尤其是 MySQL)不强制执行 CHECK 约束,在这种情况下,您需要从触发器或客户端代码中执行此操作。

#2 继承

从公用表“继承”两种用户,然后仅引用公用表。这是一个如何对“可评论”、“可标记”和“喜欢”内容执行此操作的示例,类似的原则可以应用于用户。

于 2013-12-03T02:10:24.053 回答