社交网络设计评论系统

时间:2013-12-02 17:17:10

标签: database-design yii hybridauth

您正在制作一个带评论系统的简单网站。用户可以使用社交网络ID(FB,Twitter等)登录或在网站上注册并发表评论(有些用户不会使用他们的FB帐户进行此操作)。我有两个表可用(一个用于HybridAuth,另一个用于本地用户表)。现在我的问题是如何设计表和整个系统以这种方式运行?基本上我的问题可以打破如下:评论表需要谁评论的ID(两者中的任何一个,但不是两者都是FK)。

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

如果SO或其他地方有任何链接,我很乐意指出。

1 个答案:

答案 0 :(得分:1)

有两种方法:

#1独家FK

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

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

#2继承

从公共表中“继承”两种用户,然后仅引用公用表。以下是example如何对“可评论”和“可标记”和“可爱”内容进行的操作,类似的原则可以应用于用户。