gpt4 book ai didi

mysql - 一个数据库表是否可以在不违反任何设计原则的情况下引用多个表

转载 作者:搜寻专家 更新时间:2023-10-30 20:10:43 26 4
gpt4 key购买 nike

这是“什么是最佳实践”问题。

我有 3 个表:订单、客户和地址。

Order
------
ID
ADDRESS_ID


Customer
------
ID


Address
------
ID
CUSTOMER_ID
IS_HIDDEN

用户可以有多个地址,并且可以随时自由编辑。当用户下订单时,我需要存储他当时地址的“快照”,将其与订单相关联并使其对用户不可用。换句话说,我想复制将由 Order 表而不是 Customer 拥有的地址行。这种所有权需要以某种方式指明(例如使用 IS_HIDDEN 标志)。

地址表中的某些数据有时由客户表“拥有”,有时由“订单”“拥有”,这种方法是否正确?

另一种解决方案是按顺序复制 Address 表中的所有列,这样所有权将是明确的,但我对模式中的重复感觉不好。

最佳答案

如果您真的想要地址的快照您应该将地址存储在顺序中,而不是单独的表中。

您会使查询和数据不必要地复杂化。

并且对于您所描述的实现,您无论如何都会得到重复。

示例:

Customer Address = 1 street

Customer places order the address is hidden in the table.

Customer places another order with the same address. The address is saved and hidden in the table.

最终结果为:

Customer ID | Address  | Hidden  
1 | 1 street | false
1 | 1 street | true
1 | 1 street | true

关于mysql - 一个数据库表是否可以在不违反任何设计原则的情况下引用多个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14219025/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com