我看起来似乎可能是一个简单的问题,但可能比预期更困难。假设我正在尝试跟踪用户和企业的经纬度。现在,我有一个名为locTable的表,它包含3列:Index,Latitude,Longitude。
存储用户和企业信息的表包含locTable的FK。这允许我使用一个表来存储位置数据,但是我注意到对这些数据进行查询可能很困难。
现在,我可以在每个表中为用户和企业存储纬度和经度信息,但是如果我需要对数据进行更改,我将不得不更新查询以及两个(或更多)不同的表。
你们都建议什么?共享表或单独存储信息?
答案 0 :(得分:0)
首先,确定lat / long是否为“查找”表。我不认为Lat / Long是一个查找。这意味着你不会存储每个可能的Lat / Long组合的详尽列表。它们通常指定为4位小数。理论上,如果你有无限的尺度,可能会有无限的Lat / Long组合。
我不认为在两个表中存储lat / long的重复。想想BirthDates。为避免BirthDate重复,您可以拥有一个“BirthDates”表,其中包含过去300年中每天的行数。这样可以避免人,狗和公司的BirthDay重复。但它在“查找”意义上并不重复。
我并不是说将Lat / Long存储在自己的表中是错误的。我只是建议在两个表中存储Lat / Long可能不会被视为重复。
答案 1 :(得分:0)
地点是否在变化?如果是这样,请反转外键。使位置表具有用户和企业表的外键。将日期列添加到位置表,您也可以通过添加新位置来跟踪它们。
使用您的模型,您可能需要更新两个表才能更新位置。通过切换外键,您只需在位置更改时向位置表添加新行。