我的情况是数据来自多个我无法控制的来源。 例如:
在数据库中,我希望所有这些对应于我的位置表中的单行,以便于与其他表连接。
目前,位置表似乎是
| id | source_id | source_value | value |
+----+-----------+--------------+------------+
| ## | 1 | Austin Texas | Austin, Tx |
| ## | 2 | Austin, Tx | Austin, Tx |
| ## | 3 | Austin | Austin, Tx |
如果我们有一个类似tbl_user_location的表
| user_id | location_id |
如果用户在奥斯汀,我们需要在用户位置表中添加三行,以确保涵盖所有数据源。
虽然这有效,但它相当刺激并且感觉很脆弱。
我考虑的另一个想法是有两个表 - 一个位置表和一个指向“正确”位置的别名表。
这似乎可行,但对于从多个数据源获取数据的所有表,它会使表的数量加倍。
另一个想法是拥有一个像
这样的大型别名表| id | table_id | source_id | source_value | unified_row_id |
+----+--------------+-----------+--------------+-----------------+
| ## | loc_tbl_id | 1 | Austin Texas | loc_austin_id |
| ## | loc_tbl_id | 2 | Austin, Tx | loc_austin_id |
| ## | other_tbl_id | 1 | Some Value | proper_value_id |
有没有正确的方法来解决这个问题?如果没有,哪个解决方案似乎最易维护,稳定,快速?