我正在使用 mysql,并且正在为我正在制作的网站处理架构。我有点卡住了,因为我有用户、社区(用户组)、事件(由一个或多个用户或社区参与的用户或社区制定的计划)和 rsvps(包含用户/社区的日期参加了一项事件)。我已经为用户、社区和事件创建了一个表,但我仍然停留在 rsvps 上:
我遇到的问题是,理想情况下我会为 rsvps 表设置类似这样的内容:
USER/COM ID ACT_ID DATE Goin? U 2342 1 7/1/12 true U 1342 1 7/2/12 false U 2842 1 7/1/12 true C 5342 1 7/1/12 false
ID 是用户表或社区表的外键约束,具体取决于 USER/COM 属性的值。现在我很确定不可能这样做,所以我只是想知道你会怎么做。
最后一点:除了 rsvp 表之外,我还有其他几个表需要能够一起使用用户或社区,所以我希望 rsvp 表的想法尽可能简单。
如果您需要更多信息,请告诉我, 谢谢:)
最佳答案
我会制作另一个连接用户和社区的表格。
ID USER_OR_COMMUNITY_ID IS_USER
1 32933 true
2 2398 false
3 23278 false
4 923 false
这可能很有用,因为用户和社区可能拥有相似类型的信息。例如,用户有名称(username),社区也有。他们也可能有注册日期、头像等。所以你可以有一个表,例如这些列:id、user_or_community_id、is_user、name、date_registred。然后所有特定于用户的数据都将存储在用户表中,社区也是如此。
但我不确定,这是个好问题。这可能会有点复杂。
关于具有多个引用的mysql外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11597110/