一直在閱讀教程How to handle a Many-to-Many relationship with PHP and MySQL。mysql多對多關係
在這個問題上我指的是哪些規定如下規則「數據庫架構」部分:
這個新表必須構建以 允許:
* It must have a column which links back to table 'A'. * It must have a column which links back to table 'B'. * It must allow no more than one row to exist for any combination of rows from table 'A' and table 'B'. * It must have a primary key.
現在到目前爲止,它非常清晰。
我遇到的唯一問題是第三條規則(「它必須允許不超過一行以存在於任何組合」)。
我希望這樣也可以應用,但它似乎並沒有這樣工作。
在我的MySQL測試實例(5.XX)中,我可以添加兩行,它們反映了相同的關係!
舉例來說,如果我有這樣的關係(通過添加行):
A到B
它也使我能夠使這種關係,以及:
B到A
所以,問題實際上是兩個問題:
1)如何在第三條規則不允許做上述?無論組合如何,只有一個獨特的關係。
2)當我會想搜索「A」的所有關係,如何將SQL查詢樣子?
注意#1:基本上我的最終目標是創建一個「友誼」系統,據我所知該解決方案是一個多對多的表。如果可能,建議否則。
注2:用戶表是從關係不同的數據庫(稱之爲友誼)表。所以我不能使用外鍵。
我已經發布了一個「澄清」的問題在這裏:http://stackoverflow.com/questions/3597078 – Poni 2010-08-29 23:54:37