我正在編寫一個web應用程序,無法弄清以下兩種方法中的哪一種應該採取。 想象5個表:A,B,C,d,和E.
選項1: 使用ID作爲外鍵,然後它看起來像這樣:
表A:ID,FIELD1,FIELD2,。 ..
tableB的:tableA_id,字段1,字段2,...
表C:tableB_id,字段1,字段2,...等...
選項2: 創建新列將作爲外鍵,然後它看起來像這樣:
表A:ID,字段1,字段2,...
tableB的:ID,tableA_id,字段1,字段2,...
表C:ID,tableB_id,字段1,字段2,...等...
我認爲,當我們調用tableB的ID字段被命名爲逸岸,但tableA_id我可能是錯了,所以選擇1可能會有點混亂如果有人啓發我,我會很高興。
另外,如果選項2是要走的路,在主鍵上連接表有什麼意義?
編輯:我想實現是這樣的:
帳戶
......性格
......項目
......消息
... ...其他的東西帶OneToOne註釋的數據庫結構
0
A
回答
0
我結束了創建新列的外鍵(選項2 )只是因爲它不那麼令人困惑。
感謝您的建議,但我很感激。
0
我想「選項2」,雖然你可能需要對你的目標更具體些。我可能會建議一個選項3:
TableX: id, A_id, B_id, C_id, D_id, E_id
則:
Table_A: id, col1, col2
Table_B: id, colX, colY
Table_C: id, thing1
Table_D: id, more_col
Table_E: id, xxx
然後,它只是一個簡單的連接:
SELECT A.col1, B.colX, C.thing1, D.more_col, E.xxx
FROM TableX X
LEFT JOIN Table_A as A on X.A_id = A.id
LEFT JOIN Table_B as B on X.B_id = B.id
.
.
.
+0
這是一個有趣的解決方案,但在Spring數據中,我不會手動執行任何SQL,而只需要調用存儲庫適當的函數和hibernate爲我做這個,所以我必須一直調用TableX。我也更新了我試圖達到的目標。 – Sikor 2014-10-30 22:56:21
相關問題
- 1. 帶Bools的數據註釋
- 2. 關注者/關注數據庫結構
- 3. Hibernate註釋OnetoOne關係
- 4. 關注者的MySQL數據庫結構
- 5. 帶數據註釋的MVC3驗證?
- 6. 備註數據庫到MySQL(帶CF?)/或如何獲得NSF數據結構
- 7. 原則2.2.2帶註釋的數據庫表關係
- 8. 帶註釋的Spring MVC數據庫連接
- 9. 從數據庫模式生成帶註釋的doctrine2 entite
- 10. 帶架構註釋的Doctrine ORM表
- 11. 爲*未通過RoundTripLoader加載的數據結構生成註釋?
- 12. 數據庫結構
- 13. 數據庫結構
- 14. JPA,瞬態註釋不會覆蓋OneToOne?
- 15. @OneToOne關係是否包含@ForiegnKey註釋
- 16. 結合讀出的數據註釋
- 17. 注入帶註釋的方法參數
- 18. 查找帶註釋的註釋
- 19. 由數據庫中的多個表格構成的模型的數據註釋
- 20. Enum.Parse帶註釋
- 21. 帶註釋的MuleEventContext
- 22. CMS的數據庫結構
- 23. 在API藍圖中向數據結構添加註釋
- 24. 帶有數組結構的JSON數據
- 25. 數據庫結構關係數據庫
- 26. 數據庫數據庫結構
- 27. 使用註釋器js在mysql數據庫中存儲註釋(註釋)
- 28. 結構成員的快速註釋
- 29. JAXB類層次結構的註釋
- 30. 樹節點數據結構的解釋
你想模擬一棵樹嗎? – Leo 2014-10-30 22:14:43
我不這麼認爲。我只是想弄清楚哪種方式是正確的。在我的情況下,有帳戶表,其中只包含1個字符,例如項目表,消息等等。 – Sikor 2014-10-30 22:20:07