如何将单个表链接到两个不同表中的数据?

时间:2015-10-13 09:10:04

标签: mysql database-design

我正在竞选办公室并创建了一个网络应用程序,用于跟踪我家门口的选民。该数据库包含一个名为voters的表,其中包含有关我社区中选民的所有必要信息。

我想添加一项新功能来跟踪我的广告系列的捐赠者。并非所有这些捐赠者都住在社区中,并且不在我竞选公职的地区投票。我不需要像对待选民一样跟踪这些人的同类信息,所以我要把这些人放在一张名为nonvoters.的表中

现在,我和#34;选民中的个人"桌子也可以捐款,我也想跟踪那些。

为了跟踪选民和非选民的捐款,我想建立一个名为"捐款的新表。"该表将包含有关捐赠的适当详细信息。

但我不确定将donations表格与“#34;}选民”联系起来的最佳结构是什么?和"非选民"表。如果我在表中创建一个名为voter_id的列以将其键入捐赠者信息,则无法知道ID引用哪个表。因此,我应设置两列nonvoter_idvoter_id,并根据捐赠者是否为选民将ID插入适用的列中?这看起来很奇怪。

或者我可以在名为voters的{​​{1}}和nonvoters表中创建一个列,我可以用它来链接捐赠表中的数据。如果我走这条路线,似乎我必须做一些幕后工作,以确保donor_id是唯一的,并且是关键的捐赠表内的数据。

或许还有其他我不熟悉的方法。任何指导都表示赞赏。

1 个答案:

答案 0 :(得分:0)

我会为选民和非选民使用一张桌子,让我们说人。你可以在人员表中有一个标志,表明这个人是选民,还是你可以从他们的地址中得出这个标志(如果可能的话)。

我会创建一个捐款表,并使用人员表中的ID将每个捐款链接到人员表中的一个人(或多个人)。如果捐赠可以由多人提供,那么您将需要第3个连接表,其中人员ID和捐赠ID为2个字段。这两个字段将成为连接表的主键。