任何人都可以向我解釋(HABTM或多對多)「具有和屬於許多」原理的作品嗎?說我有一個用戶表和書籍表,然後我有一個表users_books
其中的ID。我什麼時候需要實際使用這個原則,它將如何工作?任何人都可以向我解釋HABTM原理的工作原理嗎?
回答
你問你爲什麼需要多對多的關係(這是什麼HABTM)?
在上面提到的情況下,用戶可能擁有很多書籍 - 如何在數據庫中表示該書籍假設您有兩張表格,書籍和用戶,則在用戶表格中,您無法爲每本書添加一列用戶可能擁有的每本書,因爲您不知道擁有圖書數量的上限是多少。您可以添加一個名爲'books'的列,並在此列中存儲'書籍集合'(可能以XML或逗號分隔),但這會使很多數據庫查詢變得很困難(例如識別用戶擁有的單獨書籍)。
書本表也是如此,有多少用戶擁有某本書?再次,您無法知道最前面的內容,因此您無法將多個「用戶」列添加到書籍表中,而將一組「用戶」列添加到用戶集合中也無濟於事。
解決這個問題的方法是添加一個'join'表,usersbooks說,它包含兩列,一個用戶標識和一個bookid。此表將用戶鏈接到書籍。所以,如果我有兩個用戶ID爲1和2以及三本書id爲101,102和103的連接表可能看起來像:
userid bookid 1 101 2 101 2 103
這就是users_books來在HABTM - 這是加入之間的表用戶和書籍。
ħ爲甲 ND 乙 elongs Ťö中號任何處理許多到數據庫中的表之間一對多的關係。在你的情況下,它會處理用戶和書籍之間的關係,因爲一個用戶可以有很多書,一本書可以有很多用戶。
本博客文章看起來像概念的一個很好的解釋和說明:
has_and_belongs_to_many:HABTM在Rails的
http://sumanthtechsavvy.blogspot.com/2008/03/hasandbelongstomany-habtm-in-rails.html
沒錯。我明白那個。我只是看不到這一點。爲什麼不把它合併到一個表中,它在應用程序意義上是如何工作的? – openfractal 2009-08-01 06:32:39
Rails的協會指導的This section有一些有關在Rails中工作的方式的良好信息。如果您需要存儲關於該關聯本身的更多信息,則還應該考慮through association的可能性。維基百科對多對多數據模型的基本概念有一個brief article,這些數據模型也可能具有啓發性。
- 1. 有人可以向我解釋'sigaction'的工作原理嗎?
- 2. 任何人都可以解釋BufferedInputStream的原理嗎?
- 3. 任何人都可以解釋這種除法算法的工作原理嗎?
- 4. 有人可以向我解釋這段代碼的工作原理嗎?
- 5. 有人可以向我解釋這個程序的工作原理嗎?
- 6. 有人可以解釋這個代碼的工作原理嗎?
- 7. 有人可以解釋這個JavaScript的工作原理嗎?
- 8. 有人可以向他解釋這段代碼的工作原理嗎?
- 9. 有人能解釋我rayCast的工作原理嗎?
- 10. 任何人都可以舉例說明tensorflow中tf.contrib.metrics.streaming_mean_iou的工作原理嗎?
- 11. 任何人都可以解釋CRC在這個特定情況下的工作原理嗎?
- 12. 任何人都可以用C++解釋事件處理嗎?
- 13. 任何人都可以解釋OAuth嗎?
- 14. 任何人都可以用英語向我解釋這個嗎?
- 15. 任何人都可以向我解釋這個SOQL查詢嗎?
- 16. 有人可以解釋這個JavaScript/Angular代碼的工作原理嗎?
- 17. 有人可以解釋這個函數的功能和工作原理嗎?
- 18. 有人可以解釋一下VIEWS&JOIN在SQL Server中的工作原理嗎?
- 19. 任何人都可以解釋我這個代碼的工作
- 20. 任何人都可以解釋我StandardScaler?
- 21. 任何人都可以解釋這個列表的理解?
- 22. 有人可以向我解釋環境變量在C++中的工作原理嗎?
- 23. 您能否向我解釋IntentService的工作原理
- 24. 您能否向我解釋持續集成的工作原理?
- 25. 任何人都可以幫我理解這段代碼嗎?
- 26. 任何人都可以解釋以下代碼的工作...?
- 27. 任何人都可以告訴我kotlin編譯器的工作原理嗎?它的架構是什麼?
- 28. 任何人都可以向Entity Framework生命週期解釋嗎?
- 29. 任何人都可以解釋這是如何工作的?
- 30. 任何人都可以解釋我的這段代碼嗎?
請解釋縮寫 – 2009-08-01 06:27:43
有屬於很多 – 2009-08-01 06:50:06