2017-08-15 47 views
0

我設計的一個項目,其中記錄用戶可以評級添加到任何的他們閱讀,也可以增加狀態他們想讀什麼書/讀取/將讀取。 所以我創建了表格:Book,User,Rating,Status,我不確定如何將所有這些信息連接在一張表中(如果可能的話)。MySQL數據庫的架構設計和關係

現在,我有user_books表,其中我的外鍵存儲到STATUS_IDrating_idbook_idUSER_ID,但我不知道這是否是這樣做正確的方式。

關係,我想在我的SpringBoot應用程序中創建:

  • 用戶書多對多
  • 圖書評級多對一
  • 書本狀態多對一

enter image description here

+0

您好泰勒,我認爲您的模式是好的。唯一我會考慮的是將表user_books_table中的用戶評分和用戶狀態從不同的表中分離出來以保持靈活性 – Ben

+0

據我所知,您建議創建表f.e. User_book_details與user_rating和user_status,但是,你將如何連接該表和哪個表?用戶或User_Book? –

+0

我剛剛畫出了所有的模式,我認爲無論用戶和書籍在同一個表格中,因爲無論它是評分還是狀態,它們都必須以某種方式連接,以便用戶 - >可以 - >費率/更改狀態 - >一本書。 –

回答

0

看起來你想創建一個多一對多的關係。從邏輯上說,多對多關係確實存在,但是當談到物理模型時,您將創建一個映射表,您已經完成了它 - > user_books表。根據映射表中的ID,您可以得到這些 1)讀取「該書」的用戶數量。 2)書上最高評分。 3)基於用戶年齡組(如果用戶表有年齡)的書的評分