使用PostgreSQL,我有一個表格,它應該與自己有多對多的關係。該表被稱爲tools
,我正在做多對多的次表,名爲integrations
,它有兩個字段,tool_a_id
和tool_b_id
。PostgreSQL中多對多的關係
有沒有更好的方法?這裏的問題是,每當我想找到所有集成,我需要檢查這兩個tool_a
和tool_b
,如:
SELECT * FROM integrations
WHERE tool_a_id = x AND tool_b_id = x
,或者當我要選擇與另一個整合所有工具,我要更多信息:
SELECT "tools".* FROM tools, integrations
WHERE ((tools.id = integrations.tool_a_id AND integrations.tool_b_id = x)
OR (tools.id = integrations.tool_b_id AND integrations.tool_a_id = x))
此例如,不允許輕鬆地定義集成在Rails的像Rails的關係預計有且只有一個外鍵相匹配。有沒有更好的辦法?它感覺不雅。我不介意被PostgreSQL困住。
@ClodoaldoNeto你是什麼意思? – Pablo
我的意思是這個問題很糟糕。一點代碼呢? –
@ClodoaldoNeto我真的不知道你想要什麼代碼,我在問一個數據庫設計問題。如果您認爲這很有用,我添加了幾個查詢,但我的問題是概念性的。 – Pablo