如何存储多个电子邮件地址

Sir*_*een 3 database-design

我需要存储一堆电子邮件地址,每个地址都有一个标签(主要业务,二级业务等)

我有两种方法:

  1. 将它们存储为email1,email2,email 3 - 这限制了拥有任意数量电子邮件的灵活性.它还限制了存储与电子邮件相关的其他详细信息的灵活性,例如电子邮件的激活日期等.
  2. 将它们存储为行 - 这允许我拥有任意数量的电子邮件地址,并允许我拥有特定的属性.

我倾向于倾向于解决方案2 - 任何意见?

SWe*_*eko 8

如果电子邮件类型是一成不变的(等等业务和个人),您可以将它们作为列,但相应地命名列.这意味着,没有Email1,Email2,Email3字段,而是PersonalEmail和BusinessEmail字段.

如果电子邮件地址的类型和数量是灵活的,请始终使用第二个选项,但需要注意的是,这会对UI产生负面影响.虽然可以很容易地放置两到三个文本框来显示第一封和第二封电子邮件,但对于未知数量的电子邮件,您需要使用网格或列表等可能看起来不太理想的内容.


但是,根据我的经验,这种类型的通常用例是大多数用户(99%)只有一个电子邮件地址/电话号码/街道地址,但是您有一些异常值,例如输入了7封电子邮件.

如果是这种情况,你可以选择混合方法.使用其中一个电子邮件地址(大多数情况下电子邮件地址)作为主要地址并将其存储到原始表中,并向表中添加一个额外的布尔字段,以显示用户是否有其他电子邮件地址(将存储进入另一张桌子).

通过这种方式,您可以充分利用两个世界,一种简单的方式来查看人员的电子邮件地址,而无需使用连接,以及当有人决定将他拥有的每个电子邮件地址都放入应用程序时的灵活性.