SQL Server - 1对1关系的最佳实践

时间:2018-05-29 09:45:31

标签: sql sql-server database-administration

我有一张名为Station的桌子,里面有很多字段, 其中一个领域是 - StationPrice。

我希望了解有关付款流程的更多信息,例如 - currency,paymentStatus等(在10个字段之类的某个地方)。 我的问题是,如果我需要扩展当前表 - 使用新字段驻留或者有一个名为StationPriceId的字段,它将成为另一个名为StationPrices的表的外键,该表将存储与该站相关的价格的所有信息。

2 个答案:

答案 0 :(得分:0)

您的问题的答案是数据库世界中最受欢迎的答案之一 - 取决于。如果将此信息拆分为2个不同的表,它可能看起来更好,但是您需要了解如果将其拆分,那么您将需要2个插入而不是1,相同的更新和删除。此外,每次您需要此数据时,您都需要加入此表。我会首先使用单表,然后在特定需要时将其移至单独的列。

从另一方面来看,如果很少访问这些数据并且JOIN / DELETE / INSERT开销很小,那么可以移动它。

答案 1 :(得分:0)

My question is if I need to expand the current table - Station with the new fields or to have a field called - StationPriceId that will be a foreign key to another table called StationPrices which will store all the information about the price related to that station.

是的,最好使用两个表,根据您提供的信息 - 最好使用单独的表。

  1. 您可能希望维持价格变动记录
  2. 因此,如果您维护一个单独的表格,您可以将早期价格设为Active = false并为特定电台输入新价格