我正在編寫一個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. 關注者的MySQL數據庫結構
- 2. 備註數據庫到MySQL(帶CF?)/或如何獲得NSF數據結構
- 3. 帶註釋的Spring MVC數據庫連接
- 4. 從數據庫模式生成帶註釋的doctrine2 entite
- 5. 帶架構註釋的Doctrine ORM表
- 6. @OneToOne關係是否包含@ForiegnKey註釋
- 7. JPA,瞬態註釋不會覆蓋OneToOne?
- 8. 爲*未通過RoundTripLoader加載的數據結構生成註釋?
- 9. 數據庫結構
- 10. 數據庫結構
- 11. 注入帶註釋的方法參數
- 12. Enum.Parse帶註釋
- 13. 帶註釋的MuleEventContext
- 14. CMS的數據庫結構
- 15. 數據庫結構關係數據庫
- 16. 使用註釋器js在mysql數據庫中存儲註釋(註釋)
- 17. JAXB類層次結構的註釋
- 18. 結構成員的快速註釋
- 19. 新的SVN倉庫結構和移植註釋
- 20. Java註釋處理器,帶註釋的註釋類型
- 21. 在數據庫結構與節點的樹狀數據結構
- 22. 樹數據結構的數據庫結構
- 23. 場與@Transient註釋數據庫
- 24. 休眠註釋與幾個數據庫
- 25. 類庫,MVC和數據註釋
- 26. Spring數據存儲庫無需註釋
- 27. 帶有scanf的動態數據結構
- 28. 從屬性構造函數中檢索帶註釋的方法
- 29. 帶TortoiseSVN的版本控制數據庫腳本結構
- 30. 從舊的數據庫結構導出到新的數據庫結構
你想模擬一棵樹嗎? – Leo 2014-10-30 22:14:43
我不這麼認爲。我只是想弄清楚哪種方式是正確的。在我的情況下,有帳戶表,其中只包含1個字符,例如項目表,消息等等。 – Sikor 2014-10-30 22:20:07