2013-05-20 39 views
0

我有问题与mysql find_in_set,因为在名为menu_table的表中,其中:我想存储以下数据。但我想menu_ids的价值匹配到另一个表mysql find_in_set更好或单个查询检查更好

mt_id menu_ids 
--------------- 
1 4,5,6, 
2 7,8, 
or 
mt_id menu_ids 
---------- 
1  4 
2  5 

的单menu_id的话,我不知道如何来存储值,这是用于检查menu_ids更好的解决方案?

回答

2

不要存储用逗号分隔的值。这是一个糟糕的模式设计。我建议你设计这样的表格,

菜单表

  • 菜单ID(PK)
  • OtherColumns ...

其他表

  • MTID(PK)
  • OtherColumns ...

Menu_Other表

  • MTID(PK与柱MENUID)
  • MENUID(FK)

实施例记录

菜单表

MenuID OtherColumn 
1  aaaa 
2  bbbb 

其他表

MTID OtherColumns 
1  a 
2  b 
3  c 
4  d 
5  e 
6  f 

Menu_Other表

MenuID MTID  
1  1 
1  2 
2  3 
2  4 
2  5