隱藏產品組於是我有了一個結構是這樣的數據庫:如何處理這個簡單的問題 - 從用戶
[user_table] user_id, name, active
"john", "John S. Smith", true
[group_table] group_id, description, active
"abc", "test group", "true"
"cba", "second group", "true"
"bca", "third group", "true"
所以現在我想隱藏「約翰」,「ABC」組。 我使用字段user_id和group_id創建了一個名爲「hide_group」的新表。我插入適當的值,一切都很好。但它不是很好的優化。如果我有20個用戶和數百個組?那將意味着成百上千的新紀錄。 有沒有一種更優化的方式與關係做到這一點?我正在使用MyISAM引擎,如果我記得,我不能使用外鍵。 我正在閱讀mysql文檔,但它仍然對我很模糊。也許有人可以指出我正確的方向?
編輯,我的表結構是這樣的:
[group]
group_id, group_description
[group_hide]
group_id, user_id, hide
我想選擇是在「組」表中的所有羣體。除了隱藏在group_id表內的那些外。我怎樣才能做到這一點?現在我可以讓它只選擇group_hide表中的所有記錄(這不是我所需要的),或者只選擇group內的所有記錄,忽略group_hide中的所有記錄。我希望不要選擇應該隱藏的組,但其他所有組件都應該可見。
MyISAM不執行外鍵,因此不會級聯刪除。但你加入的密鑰絕對是外鍵。除非你的表具有'FULLTEXT'索引或者你有一些特殊的數據庫備份需求,否則可能需要切換到Innodb。 – dnagirl 2011-03-14 13:01:03