多个表中的相同字段

时间:2011-08-29 10:35:09

标签: mysql database-design

我有以下表格:培训师,培训生和健康专业人员。 我需要将邮件列表字段合并到每个字段中,以标记那些想要接收我们的简报的人。

是否可以在每个表格中使用相同的字段,或者有更好的方法来解决此问题?

非常感谢,Zan

3 个答案:

答案 0 :(得分:3)

您可能应该有一个people表,其中包含mailing_list。然后,如果您需要为培训师,培训人员等存储不同的数据,请将其保存在单独的表中,并通过使用外键使其可连接。

答案 1 :(得分:1)

我会尽量避免重复数据,

对于邮件列表,这里我将如何避免在不同的表中重复它 Foreign keys

|     trainers    |    |     trainees    |  |   Health_prof   |
|_________________|    |_________________|  |_________________|
|       ....      |    |       ....      |  |       ....      |
| mailing_list_id |    | mailing_list_id |  | mailing_list_id |

和一个表邮件列表

| mailing_list    |
|_________________|
| mailing_list_id |
| all orther infos|

如果您的人员可以注册到多个邮件列表,我会使用第三个表格来建立人员和邮件列表之间的链接,并将相应的ID作为行,所以要注册,注销,您只需要插入/删除此表中的行

答案 2 :(得分:0)

假设培训师,受训人员和健康专业人员有共同信息(例如姓名,性别,出生日期,电子邮件地址等),您可能希望将该信息存储在单独的表格中,例如person_info。

如果您计划只有1份时事通讯或极少数类型的时事通讯(例如网站更新,优惠等),那么您可以将该信息存储为person_info表中的一个组合或每个时事通讯类型。

但根据我的经验,新闻通讯系统应该是它自己的一组表,其中订阅作为行存储,更像是EAV而不是列。这减少了业务人员需要新通讯类型时所需的DDL数量。