2013-05-20 37 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