Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
具有多个引用的mysql外键_Mysql_Foreign Keys_Rdbms - Fatal编程技术网

具有多个引用的mysql外键

具有多个引用的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

我正在使用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表的想法尽可能简单

如果您需要更多信息,请告诉我,
谢谢:)

我将制作另一个连接用户和社区的表格

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