具有多个引用的mysql外键
我正在使用mysql,我正在为我正在制作的网站设计模式。我有点卡住了,因为我有用户、社区(用户组)、活动(由一个用户或有一个或多个用户或社区参与的社区制定的计划)和RSVP(包含用户/社区参与活动的日期)。我已经为用户、社区和活动创建了一个表,但我仍然停留在RSVP上: 我遇到的问题是,理想情况下,对于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 用户/COM ID行为和ID日期? U 2342 1 7/1/12正确 U 1342 1 7/2/12假 U 2842 1 7/1/12正确 C 5342 1 7/1/12假 ID是用户表或社区表的外键约束,具体取决于user/COM属性的值。现在我很确定这样做是不可能的,所以我想知道你会怎么做 最后一点注意:除了rsvp表之外,我还有其他几个表需要能够一起使用用户或社区,因此我更希望rsvp表的想法尽可能简单 如果您需要更多信息,请告诉我,具有多个引用的mysql外键,mysql,foreign-keys,rdbms,Mysql,Foreign Keys,Rdbms,我正在使用mysql,我正在为我正在制作的网站设计模式。我有点卡住了,因为我有用户、社区(用户组)、活动(由一个用户或有一个或多个用户或社区参与的社区制定的计划)和RSVP(包含用户/社区参与活动的日期)。我已经为用户、社区和活动创建了一个表,但我仍然停留在RSVP上: 我遇到的问题是,理想情况下,对于rsvps表,我会有如下内容: USER/COM ID ACT_ID DATE Goin? U 2342 1 7/1/1
谢谢:)我将制作另一个连接用户和社区的表格
ID USER_OR_COMMUNITY_ID IS_USER
1 32933 true
2 2398 false
3 23278 false
4 923 false
这可能很有用,因为用户和社区可能拥有类似类型的信息。例如,用户也有一个名称(用户名)。他们还可能有注册日期、头像等。。因此,您可以有一个包含以下列的表:id、user或community、is、user、name、date、registed等等。然后,特定于某个用户的所有数据都将存储在用户表中,社区也是如此
但我不确定,这是个好问题。这可能会有点复杂。我会制作另一个连接用户和社区的表
ID USER_OR_COMMUNITY_ID IS_USER
1 32933 true
2 2398 false
3 23278 false
4 923 false
这可能很有用,因为用户和社区可能拥有类似类型的信息。例如,用户也有一个名称(用户名)。他们还可能有注册日期、头像等。。因此,您可以有一个包含以下列的表:id、user或community、is、user、name、date、registed等等。然后,特定于某个用户的所有数据都将存储在用户表中,社区也是如此
但我不确定,这是个好问题。这可能有点复杂。因为我比较喜欢外键,所以我会使用这样的东西
RSVP_ID USER_ID COM_ID ACT_ID DATE Goin?
1 2342 NULL 1 7/1/12 true
2 1342 NULL 1 7/2/12 false
3 2842 NULL 1 7/1/12 true
4 NULL 5342 1 7/1/12 false
RSVP_ID只是一些自动递增的主键。您可以在user\u id+act\u id和com\u id+act\u id上放置两个唯一的键
这样,您可以使外键正常工作。此外,我总是有一个包含不同内容的专栏…因为我比较喜欢外键,所以我会使用这样的内容
RSVP_ID USER_ID COM_ID ACT_ID DATE Goin?
1 2342 NULL 1 7/1/12 true
2 1342 NULL 1 7/2/12 false
3 2842 NULL 1 7/1/12 true
4 NULL 5342 1 7/1/12 false
RSVP_ID只是一些自动递增的主键。您可以在user\u id+act\u id和com\u id+act\u id上放置两个唯一的键
这样,您可以使外键正常工作。此外,我总是有一个包含不同内容的专栏…我会跳过外键。你也可以使用触发器来破解外键,但这可能不是一个好主意。是的,“手动”的方法可以奏效,但我想在游戏的早期避免大的破解:pI只会跳过外键。你也可以使用触发器破解外键,但这可能不是一个好主意。是的,“手动”的方法可以奏效,但我想在游戏的早期避免大的破解:p