簡體   English   中英

SQL - 數據庫設計,需要建議

[英]SQL - database design, need suggestion

我正在構建每個用戶都有不同類的網站

+----+-----------+---------+
| id | subject   | user_id |
+----+-----------+---------+
|  1 | Math 140  |       2 |
|  2 | ART 240   |       2 |
+----+-----------+---------+

然后每個類都會有大量的Homework文件,Class-Papers文件等等。 在這里,我需要你的幫助。 什么是更好的方法:構建一個這樣的表:

+----+-----------+--------------------------------------------------+--------------+
| id | subject   | Homework                                         | Class-Papers |
+----+-----------+-----------------------------------------------------------------+
|  1 | Math 140  |  www.example.com/subjects/Math+140/file_name.pdf |   bla-bla    |
|  2 | Math 140  |  www.example.com/subjects/Math+140/file_name.pdf |   bla-bla    |
|  3 | Math 140  |  www.example.com/subjects/Math+140/file_name.pdf |   bla-bla    |
|  4 | ART 240   |  www.example.com/subjects/ART +240/file_name.pdf |   bla-bla    |
|  5 | ART 240   |  www.example.com/subjects/ART +240/file_name.pdf |   bla-bla    |
+----+-----------+--------------------------------------------------+--------------+

而不是僅僅在我想要顯示它時分離內容,或者為每個主題構建一個表而不僅僅是加載必要的表?

或者,如果您可以提出更好或更常見/有用/更有效的建議,請繼續。

在嘗試此操作之前,您應該閱讀有關規范化和關系設計的內容。

這是一對多的關系 - 就這樣建模。

每個主題的表都很瘋狂。 您必須為每個主題添加一個新表。

更好的解決方案可以簡單地通過添加數據來添加新主題。 這就是關系模型的全部意義所在。

不要擔心桌子; 首先用自然語言思考它。

主題(微積分)可以有許多課程(差異,積分,多變量)。

課程(差異微積分)可以有許多部分(數學建築的第2室上午9-10點)。

學生(名字,姓氏,學生ID)可以注冊零個或多個部分。 給定學生的SECTION列表是TRANSCRIPT。

每個學生每學期有一個TRANSCRIPT(2012年秋季)。

SECTION可以有零個或多個ASSIGNMENT。

這些是您在解決這個簡單問題時需要的表格。 在開始編寫SQL之前,請擔心名稱及其相關性。 你會很高興的。

我絕對不會為每個主題創建一個單獨的表。 如果你這樣做了,那么如果你想要一個像“為學生X列出所有作業”這樣的查詢,你將不得不根據學生注冊的科目來訪問不同的表格。更糟糕的是,只要有人添加了新的主題,你就會有創建一個新表。 如果你決定需要一個新的家庭作業屬性,而不是更新一個表,你將不得不更新這些主題表中的每一個。 這只是個壞消息。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM