MySQL管道分隔值vs映射表

时间:2011-09-20 10:11:41

标签: mysql

我的情况是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?

在搜索中哪个有效或哪个更有效?为什么?

1 个答案:

答案 0 :(得分:4)

在调用时使用映射表。避免使用具有逗号分隔或管道分隔值的列,因为这违反了良好的数据库设计实践,并且当您必须开始查找数据,插入新数据等时,使您的生活变得不可能。您的查询变得过于复杂,难以编写和您的查询性能保证不是最佳的。