2017-02-23 128 views
0

我已經創建了一個學校計算(CIS)數據庫,我有一些額外的要求,從下面的信息添加。我創建了一個ERD,但覺得我犯了一些錯誤,例如遞歸關係的基數?遞歸關係的基數?

任何其他反饋將不勝感激。

新要求 CiS希望使用數據庫通過網站在線共享會話,參與者等的詳細信息。任何參與者 - 學生志願者,學校工作人員,SHU講師 - 都可以使用用戶名(或者電子郵件地址)和密碼進行登錄。登錄後,會員以不同的方式使用網站(學校工作人員請求會話,SHU講師管理他們,學生志願者看看他們可以參加什麼,確認他們的可用性,然後檢查時間是否正確)。 CiS希望能夠通過該網站共享資源。資源是在會話或通常CiS的目的中有用的文件。創建這種文件的成員上傳它們,數據庫保存URL,文件標題,描述和跟蹤文件作者等細節。 會員可以上傳文件,會員可以給他們加標籤,給他們一個星級評分,並對他們發表評論。

標籤是用戶分配給文件的關鍵字。一個文件可以有多個標籤;一旦有人用關鍵字標記了文件,則不需要其他人再次使用相同的關鍵字標記同一文件。

星級評定。任何網站會員都可以對任何文件進行評分,但不會對他們評分過的文件重新評分。

評論沒有這樣的限制,因爲最終他們形成了關於每個文件的討論,所以網站成員可以寫出很多關於文件的評論。瞭解每個文件評論的日期,作者和主題將有所幫助。

Additional requirements ERD!

回答

0

您的圖不是ERD。特別是,使用線條表示關係會將您限制爲二元關係,並且會喪失實體關係模型的大部分表現力。

通過使用您的用戶表UsernamePassword作爲主鍵的組合,你讓不同的用戶可以使用同一個Username用不同的密碼的可能性。這是你想要的嗎?但是,在Upload file表中,您只存儲了Author_username,所以也許您只需要Username作爲關鍵?你需要在這裏保持一致。你的Uploaded file表需要被分成許多。目前,它只支持一個標籤,一個評級和一個評論文件/用戶名。目前尚不清楚Author_username是指示上傳文件的用戶還是標記,評分和評論文件的用戶。順便說一下,這些東西在您的表格中鏈接在一起,防止用戶發佈更多標籤或評論。 File titleFile description可能僅依賴於File URL,並且如果存儲多個標記,評分或評論,將會被複制,從而導致不一致的風險。

編輯:

既然你問你的意見的建議,我建議:

  1. 使用陳的ERD符號,或至少使用形狀來表示關係,並支持三元和更高的關係的變化。更好的方法是Object-Role Modeling
  2. 僅使用Username作爲4個用戶表的主鍵。
  3. 拆分Uploaded file入下表:

    • Uploaded file (File_URL PK, File_title, File_description, Username FK)
    • File_tags (File_URL PK/FK, Tag PK)
    • File_ratings (File_URL PK/FK, Username PK/FK, Rating)
    • File_comments (Comment_ID PK, File_URL FK, Username FK, Comment, Created_at, Reply_to_comment_ID FK)

不e這只是爲解決我提出的問題所做的一些最小修改,這些修改意味着用於教育目的,而不一定是對您的要求的適當解決方案。

+0

好的謝謝你,你會推薦到: 1.改變author_username到用戶名 2.創建一個新的鏈接表從用戶信息到上傳文件? 3.這將包括諸如file_comment和file_rating等屬性? –

+0

我編輯了我的帖子以添加建議。如果您對他們有任何疑問,請告訴我。 – reaanb

+0

1.我無法使用任何其他方式與我繪製的方式分開。 2.那麼如果上傳的文件表中沒有(用戶名FK),用戶表將如何鏈接到上傳的文件? 3. File_comments將鏈接到用戶表格以及上傳的文件表格? –