好的,当客户下订单时,您必须将客户姓名及其地址存储到数据库中。您有表:名称、地址和订单
Name table CustID - FirstName - LastName 1 - Tom - Hand .... Address table AddressID - CustID - Street - State -Country ... 1 - 1 - Newyork Street - NY - US Order table (without storing status quo data) OrderID - CustID 1 - 1 Order table (storing status quo data) OrderID - CustID - FirstName - LastName - Street - State -Country 1 - 1 - Tom - Hand - Newyork Street - NY - US
那么您选择哪种订单表类型?
您选择不存储现状数据的订单表还是存储现状数据的订单表?
我更喜欢存储现状数据的,因为我们需要订单现状信息的证据,这样当客户有问题时我们可以有一个固定的数据来检查,但这样我们就有了重复的数据。
如果我们选择订单表而不存储现状数据,那么姓名和地址等数据可能会发生变化,从而无法用现状数据下订单,这是严重的。
那么,现实世界的项目如何管理这个?
最佳答案
当然这取决于您的要求。但是您应该有包含名称、地址等的订单表。这实际上并不是您想象的“重复数据”,在这种情况下,它只是作为订单历史记录,这在任何企业系统中都非常重要。订单应反射(reflect)基于订购时的名称和地址快照的运输数据。如果订单已发货,则可能无法再编辑,而客户的姓名、地址等可以随时更新,并将用于将来的订单。
另请参阅有关此/类似主题的非常好的引用资料 here (像往常一样)马丁·福勒(Martin Fowler)
关于mysql - 您是否按原样存储客户订单信息(客户名称、地址..)并因此接受重复数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21504820/