在我的连接表中存储附加数据有什么缺点吗 /联结表。
例如,我正在处理 cargo 公司的数据库,我有 3 个表:
Table 1 - company,
Table 2 - trailer_type,
Table 3 - junction_table,
每家公司可以有不止一种拖车类型,但我还需要每个公司的每种拖车类型的拖车数量。放置预告片计数的最合乎逻辑的位置似乎是在具有 company.id
和 trailer_type.id
的联结表中。
这样做有什么缺点吗?如果有,是否有更好的方法?
最佳答案
从您表述问题的方式来看,我认为您的直觉大部分是正确的。您将联结表确定为保存计数的地方。但是你在犹豫,显然是因为它是一个“连接表”。
所有的表都是平等的。从 SQL 的角度来看,没有事实表,没有维度表,没有联结表。只有 table 。
规范化设计表示用于标识每一行的最小键。在您的情况下,联结表的自然键类似于 {company_id, trailer_type_id}。是否存在功能上依赖于该 key 的信息?为什么,是的,有:ntrailers
。这样一个专栏就诞生了。
所以不用管是什么表。想一想该行的含义,以及它是如何被识别的。这会让你保持在正确的道路上。
关于sql - 我应该在 SQL 连接/连接表中存储额外的数据吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38403191/