我正在使用MySql數據庫,其中有一個名爲books
的表。相關條目 - 使記錄之間的雙向關聯
我想實現一個系統,用戶可以通過它關聯兩個項目,以便在查看一個項目時,它會顯示一個到另一個項目的鏈接。
我的問題是,我想的方式,當book1
(id==1
)連接到book2
(id==2
),也book2
鏈接到book1
,反之亦然這樣做。
我想這樣做的方式是創建一個名爲relations
的新表,並且至少有兩個列col1
和col2
,其中保存所有相關項目的ID。 例如,對於book1
和book2
行應該是這樣的:
—————————————————
| COL1 | COL2 |
—————————————————
1| 1 | 2 |
—————————————————
所以觀看book1
的時候我會SELECT * FROM 'relations' WHERE COL1 = '1' OR COL2 = '1'
我想以這種方式它應該工作,但我想知道是否有一個更好/更有效的方式來處理這個問題。
您指的是「索引用途的殺手」?如果我有第三列廣告索引(增量ID),會有什麼不同嗎?無論如何,我一直在想它...... – ghego1 2013-04-29 05:39:30
MySQL-Query-Optimizer可以爲每個表使用一個索引。如果查詢「where col1 = 12 or col2 = 12」,它不能使用索引。 第三列不會改變這一點,但由於某些原因,唯一的ID是一個好主意。 當col1是數字時,我最好避免col1 ='1',col1 = 1應該會更好。 – flaschenpost 2013-04-29 13:22:40