【发布时间】:2011-01-08 19:25:55
【问题描述】:
我需要一个数据库来存储,即用户记录。常规资料:姓名、电子邮件、地址、电话、传真等。问题是,在这种情况下,每个用户可能有多个电话号码。而且不止一封电子邮件。甚至不止一个地址。还有更多不止一个的东西。
一种方法是将所有内容存储在一个表中,例如一个电话列中的序列化电话数组。或在一个电话列中以逗号分隔电话。但我真的不喜欢这种方式,我宁愿做过于复杂的数据库,让编程逻辑更简单,而不是反过来。
另一种是电话单独表、地址单独表等。列:id、customer_id、电话。 customer_id references customers.id 现在这似乎有点矫枉过正,大约 10 个表仅用于存储联系方式.
我想出的另一个想法是为联系人添加一个表格,其中包含 id、customer_id(key 等列>、价值。其中键可以是“电话”和值“+123 3435454”,或者键可以是“电子邮件”和值......你明白了。到目前为止,我最喜欢这个。
你有什么建议? #3 方法的缺点是什么?
我要使用的db是postgresql,但这并不重要。
【问题讨论】:
标签: sql postgresql data-modeling