如何存储“同样”的数据?

6

我有一个模型,其中包含三个地址:取货地址、送货地址和账单地址。我认为账单地址通常会是取货地址或者送货地址之一,因此从用户界面的角度来看,我应该提供“同上”选项。但是从数据库的角度来看,我应该保存“同上”字段,还是应该复制数据?

4个回答

4

在两个不同的列PickUp和DropOff中,应该拥有与Address表中一行相同的Id。这样,您不会重复地址,也不会使用一些特殊地址,并且可以轻松查询以查看PickUp地址是否与DropOff地址相同。如果将来其中一个地址发生更改,您始终可以修改存储在其各自列中的Id值为新地址。


好的,显而易见的解决方案。我想当我构思这个问题时,我在脑海中混淆了问题(还有一个“另存为默认”...)。 - mpen

2
您可以创建一个名为“Address”的表,并将Pickup、Dropoff和Billing作为外键与该Address表关联。

2
仅仅因为一个地址是相同的物理地址,并不意味着它是相同的概念地址。实际上,John Doe的地址可能是“123 Elm St.”,但在概念上,他的地址是“John Doe的邮寄地址”。
特别地,对于地址来说,由于这个简单的情况,我会说可以并且应该在数据库中复制地址:考虑两个住在同一地址的人。现在其中一个人搬走了。如果您只存储了一次地址,更新“搬家者”的地址将同时更新原来室友的地址。
但总的来说,请考虑数据与其他数据的关联。如果多个事物与之相关,请确保对其中一个的更改应影响它们所有的关联事物。

1

alt text


哈哈... 可爱!你不必为我画一个图,但还是谢谢 :) - mpen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接