數據庫表的設計

學習了SQL基本語法后,應該好好研究下數據庫表的設計。

  • 建幾個表?
  • 表的主鍵外鍵怎么設計?

比如:對于一個球賽管理系統,有單打和雙打。對于雙打,每倆個隊員都能組合,所以隊員之間的相關性很強。
如果只設計一個表,隊員名字字段下直接存比分,則呈現如下情況:

隊員1 隊員2 隊員3 隊員4 ... 比賽時間
21 15 1-1
13 21 21 13 1-2
16 21 1-3

表中第二行和第四行示范單打,第三行示范雙打。
這思路簡單,但是想要添加隊員麻煩且增加一個隊員就要增加一個字段,也就是一列。這樣隊員一多很不科學。

更合理的做法應該是:

  • 隊員信息建一個表。
用戶id(主鍵) 隊員名字 其他信息...
1 playerA ...
2 playerB ...
  • 比賽成績建一個表(單打和雙打分開和一起都行,下面演示合一起的示例)
比賽記錄id(主鍵) 甲方隊員1 甲方隊員2 乙方隊員1 乙方隊員2 比分 比賽時間
1 1 2 21:15
2 3 4 5 9 18:21

其中,甲乙方隊員字段下存的是隊員編號,均是隊員信息表中主鍵的外鍵,也就是設置4個外鍵。
表中第一行示范單打,用戶id為1的隊員和為2的隊員單打。
第二行示范雙打,用戶id為3和4的隊員對陣用戶id為5和9的隊員。
這樣添加隊員也方便,檢索隊員數據也方便。比分這樣寫是字符串形式,還需要解析,也可以列成兩列,直接存成數。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 前面講了SQL優化以及索引的使用、設計優化了,那么接下來就到表的設計與優化啦!!!真實地去設計優化單表結構以及講述...
    JackFrost_fuzhu閱讀 3,934評論 2 28
  • 1、引言 數據庫設計過程中表、字段等的命名規范也算是設計規范的一部分,不過設計規范更多的是為了確保數據庫設計的合理...
    SnowflakeCloud閱讀 41,104評論 0 48
  • 觸動心靈的10句詩詞! 2016-09-12 掌上歷史 作者:儒風大家 來源:儒風大家 人生到處知...
    敲冰求火閱讀 477評論 0 1
  • 遠眺微雨落,靜坐雨中樓。不知琴聲何處起,且彈清水空悠悠。 海南的雨脾氣時而溫馴,如湖畔的風景,溫香軟玉。海...
    執仗閱讀 788評論 0 3
  • 蕭伯納老先生說過一句話很是缺德:“想結婚的就去結婚,想單身的就維持單身,反正到最后你們都要后悔。” 是的,真正能過...
    myaudiobooks閱讀 15,718評論 49 407