如何創建一個Message
表像這樣在MySQL的數據庫,其中存儲的信息和他們的反應?如何實現mySQL的自我關係?
1
A
回答
5
你可以試試這個:
create table messages (
message_id int primary key,
response_to int null references messages(message_id), -- self relationship
user_from int not null references users(user_id),
user_to int not null references users(user_id),
content varchar(200) not null
);
第一條消息將有null
值未response_to
場。請注意,如果您打算存儲「對話」而不是「消息」,請考慮使用CLOB(字符大對象)的普通表來存儲對話的JSON或XML表示形式。它會加快你的查詢速度(如果你總是打算一次讀取整個對話而不是單個消息)。
+0
謝謝巴勃羅,我明白了這是如何運作的!如果沒有響應,則在這種情況下空值很重要。 – Ciphor 2013-03-25 10:25:45
1
您可以創建一個foreign_key它引用原郵件ID,但不要忘記允許空值,因爲原始郵件將不會有這個按鍵。
但是不是更好的方法有一個線程表,然後在消息表中保存threadId以便可以匹配哪些消息屬於哪個線程,發佈時間可能是識別響應的一個很好的指標消息。
+0
感謝增加對空值的點,你的建議是好的,有用的投入! – Ciphor 2013-03-25 10:26:50
相關問題
- 1. 實現自我關係
- 2. 如何在Mysql中建立自我與自我的關係?
- 3. 如何在MySQL中實現n對n關係的雙連接
- 4. 如何手動實現JPA關係OneToMany
- 5. 如何在Java中實現n:m關係?
- 6. 如何實現多對多關係?
- 7. 如何實現可選關係?
- 8. JPA實體關係多對多的自我關係
- 9. 如果發現使用系統實現,否則使用我自己的實現
- 10. 我如何在rails3中實現親子關係
- 11. 我該如何實現這種關係(繼承,構圖,其他)?
- 12. 實體關係建模:如何實現實體「角色」?
- 13. DDD:如何正確實現與JPA/Hibernate實體的關係?
- 14. 使用db4o實現關係
- 15. 關係Fisher核心實現
- 16. 關係數據庫實現
- 17. 我願意幫助實現代碼第一次自我的關係
- 18. 如何在rdbms中表示自我與自我的關係?
- 19. keystoneJS關係自我
- 20. 自我M:N關係
- 21. 如何在一側實施有限數量關係的多對多關係? (MySQL)
- 22. 實現關係&&軟件工程中的關聯關係
- 23. 實現關聯到MySQL
- 24. mongoid自我與自我的關係?
- 25. 如何在數據庫中實現這些實體關係?
- 26. 如何在mysql workbench中的實體之間自動進行關係?
- 27. HABTM與自我的關係?
- 28. 關於如何實現這個系統的任何建議?
- 29. 關於sub3.0設備的ActionBar - 使用我的自定義系統實現ActionBarSherlock?
- 30. 如何實現自引用與Entity Framework Core 1.1的多對多關係?
什麼是錯列'Message.response_to'具有FK爲'Message'的PK? – 2013-03-25 10:21:16
爲什麼你不只是一個字段添加到持有另一消息的主鍵消息表? – Philipp 2013-03-25 10:22:16