【发布时间】:2015-08-30 09:48:17
【问题描述】:
我正在将电子表格转换为数据库,但如何容纳一个字段的多个值?
这是一个跟踪工厂订单的数据库。 导入 PO# 是唯一键。有时 1 个订单会有 0,1,2,3,4 或更多客户要求我们在工厂的产品上放置他们的价格标签。每个订单都是不同的。在 1 个字段中容纳多个值的正确方法是什么?
【问题讨论】:
标签: mysql database architecture
我正在将电子表格转换为数据库,但如何容纳一个字段的多个值?
这是一个跟踪工厂订单的数据库。 导入 PO# 是唯一键。有时 1 个订单会有 0,1,2,3,4 或更多客户要求我们在工厂的产品上放置他们的价格标签。每个订单都是不同的。在 1 个字段中容纳多个值的正确方法是什么?
【问题讨论】:
标签: mysql database architecture
通常,在一个字段中有多个值是糟糕的数据库设计。在这种情况下,也许一对多的关系会起作用。
所以你会有一个以 PO# 作为主键的 Order 表, 然后您将拥有一个以 PO# 作为外键的 OrderDetails 表。即它不会被指定为主键。
对于 Order 表中的每一行,您将拥有一个不会跨行重复的唯一 PO#。
在 OrderDetails 表中,每行都有一个客户,并且由于 PO# 不是主键,它可以跨行重复。这将允许您为每个订单指定多个客户。因此,每一行都有自己的 PriceTicketsOrdered 字段,因此您可以了解每位客户的价格。
请注意,每个客户都可以重复 OrderDetails 表中的行,只要它针对不同的 PO# 和/或产品。
根据您的问题的明确性,这是我能告诉您的最好的信息。
就我个人而言,我通常会花时间在纸上设计我的数据库或使用一些绘图软件(如 visio),然后再开始在 MySql pr PostgreSql 等特定软件中实现我的数据库。
阅读 ER 图(实体关系图)可能会对您有所帮助。 您还应该阅读数据库规范化。可能您应该先阅读数据库规范化。
这是一个可能有帮助的链接:
http://code.tutsplus.com/articles/sql-for-beginners-part-3-database-relationships--net-8561
【讨论】: