我的情况是1个记录可能有多个主表的行。
e.g。
sports master table
Cycling
Rafting
Shooting
Football
Cricket
现在我有人表
Person
id
first_name
last_name
我可以在Person表中将sports id作为外键作为管道分隔字段,还是可以创建单独的表作为映射表
e.g。
sports_persons_mapping
id
person_id
sports_id
请从2个选项中选择。
管道分隔字段在人员表或映射表sports_persons_mapping?
在搜索中哪个有效或哪个更有效?为什么?
答案 0 :(得分:4)
在调用时使用映射表。避免使用具有逗号分隔或管道分隔值的列,因为这违反了良好的数据库设计实践,并且当您必须开始查找数据,插入新数据等时,使您的生活变得不可能。您的查询变得过于复杂,难以编写和您的查询性能保证不是最佳的。