【发布时间】:2020-04-11 11:56:33
【问题描述】:
我有两张桌子。像这样的:
id | array_of_ids
----------------------
001 | {012, 345, 789}
002 | {789, 123, 456}
003 | {234, 789, 567}
004 | {543, 210, 789}
另一个这样的:
ids | str
-------------
012 | am_name1
345 | name2
789 | name3
123 | am_name4
456 | name5
234 | name6
567 | am_name7
543 | am_name8
210 | name9
我想创建一个如下所示的表:
id | array_of_ids | label
-----------------------------
001 | {012, 345, 789} | name1
002 | {789, 123, 456} | name4
003 | {234, 789, 567} | name7
004 | {543, 210, 789} | name8
我知道填充的标签看起来是随机的,但这里有一些详细信息:每个 id 都有一个对应的名称,但我只对特定类型的名称感兴趣——带有前缀“am”的名称。我希望能够扫描array_of_ids,检查数组中的id 是否与我感兴趣的str 匹配,并使用对应的名称填充一个新变量label。我希望这很清楚!如有必要,很高兴编辑!
【问题讨论】:
-
什么时候数据库设计人员认为规范化他们的模型很重要?我是老派的。我不明白这需要在 one 字段中存储带有主键的数组。规范化规则编号 1 是?
-
嗨@trincot,我没有设计桌子!数组不是主键。数组是外键。
-
是的,关键是在一个字段中放置多个参考数据是很糟糕的设计。对于文本和其他仅提供有关核心数据的详细信息的信息来说,它的坏处较小,但即使这样也违反了正常形式。
-
是的@trincot,我同意!