我正忙于创建一个基本的电子商务网站,并且想知道以下两个关于我存储帐单和送货地址方式的最佳选择。我愿意接受任何其他建议。
我可以在“订单”表中添加帐单邮寄地址和收货地址:
order
-------
billing_name
billing_address
billing_state
shipping_name
shipping_address
shipping_state
否则,我可以创建另一个表,该表将仅存储订单的地址:
order
-------
billing_address_id
shipping_address_id
order_address
-------
address_id
name
address
state
最佳答案
我通常会选择第二个。这将使您为不同类型的客户提供许多不同的地址。但是我通常会先在客户层解决这个问题,然后再处理订单和发票。
但是,您可能需要解决订单工作流程/业务规则的性质。
订单完成后,是否为单据(如发票)?如果是这样,则该地址应在那时锁定并且不能更改,否则您可能无法重新出示原始文件。
当客户更改其帐单邮寄地址时,旧订单的帐单邮寄地址甚至不再重要吗?在这种情况下,账单地址甚至不需要与订单链接,而仅需要与客户链接。如果您要重新显示要付款的订单,则应将其显示到其当前的帐单邮寄地址。
关于SQL表设计: Should I store addresses with orders or in separate table?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4740186/