2017-03-20 64 views
0

我正在學習關於數據庫系統的ER建模。我的問題是,有一個實體叫書籍,實體命名用戶,我想創建用戶和書籍之間的借款關係與屬性發布日期。我按照描述對其進行了建模,但有人指出借貸不能成爲一種關係,因爲同一個用戶可以借兩本書。任何人都可以向我解釋這是什麼,因爲我使用問題數據作爲屬性,所以借記關係中的記錄不會相互衝突,因爲我將PK用作用戶標識,書籤和發行日期。我如何準確地建模?我對此有點困惑。ER模型中的關係

+0

我對ER建模知之甚少,但在給定的例子中,會阻止用戶在同一時間多次借用同一本書(因此具有相同的發行日期)? – Etienne

+0

發行日期是日期時間類型,所以會有區別。 –

+1

我會把借款當作一個實體而不是一種關係。 – Etienne

回答

1

在ER模型中,實體關係由單個實體集的屬性組成,其中PK僅識別一個實體集。關係關係具有代表兩個或更多個實體集合的組合PK。

您的問題使用代表兩個實體集(useridbookid)和值集(issue date)的複合PK。嚴格來說,它既不是實體關係也不是關係關係。它是一個關係關係(兩個實體鍵)和一個弱實體集(issue date函數類似於弱密鑰)的組合。如果我們想要創造性,我們可以稱之爲弱關係。

如果我不得不得出這個ER圖,我可能會提出這樣的:

Borrows ER diagram

ER模型並不是一個完整的邏輯模型(不同的關係模型),並有是一些處理不好或完全沒有處理的情況。這是其中的一種情況。

0

根據說明,用戶本書是實體。

一個用戶可以借用一本書的實例。 同理,一個用戶可以借用多本書的實例,不管它可以是相同的 實例還是各種實例。

因此,用戶和圖書之間的每項交易都有發佈日期。 用戶和圖書都沒有發佈日期。

這裏,用戶書之間的關係多對多

交易。我們可以根據您的興趣將它命名爲借用。

現在,用戶有一對多的交易。 每本書都有一對多的交易。

每筆交易都是用戶和賬簿的組合。

注意:由於每個用戶可以在同一天多次使用同一本書。因此,我們可以有一個user_id,book_id和Issue_timestamp的組合主鍵,因爲在發佈日期有相同組合的冗餘機會。