簡體   English   中英

如何將數據表標准化為3NF

[英]How to normalize data table to 3NF

我不明白如何將數據庫表標准化為3NF?

FileName    FileName
Directory   Directory
FileType    FileType (Image, Archive, Movie)
PType           Freeware or shareware (need to be buyed)
UploadedDateTime Uploaded date time 
CheckedDateTime Checked date time
FileSize    size of file
Keywords    like: family, home, work, etc (something like tags)

據我了解,我們需要創建3個其他表(用於fileTypes,PTypes和關鍵字)和3個連接表。 我對嗎?

您可以為FileType,PType和關鍵字保留單獨的表。 例如,FileType有兩列-id和type。 對於Ptype和關鍵字也是如此。

進一步,Directory:FileName是一個1:N關系。 因此,將有一個Directory表和一個FileName表,其中目錄ID為外鍵。

FileName:關鍵字和FileName:FileType是N:N關系。 我假設FileName:FileType為N:N,因為文件可能是壓縮電影(存檔+電影)。

不知道FileName:PType是否為N:N。 但是取決於您的用例。 我認為它是1:N。 FileName可以是免費軟件或共享軟件,不能同時使用。 一個簡單的外鍵關系就足夠了,不需要“連接”表。

我假設日期將是FileName和Directory表的屬性(列),不是嗎? 如果日期是從目錄導出的(該目錄中所有FileName的最大日期),則您不需要目錄表中的該列,因為它是從其他字段中計算出來的。

我希望這些足以讓您入門。

更新:

文檔名稱

+----+----------+-------+------+------------------+
| id | filename | dates | size | directoryid (FK) |
+----+----------+-------+------+-------------+----+

目錄

+----+---------+-------+------+
| id | dirname | dates | size |
+----+---------+-------+------+

如果從文件名表派生,則不需要日期

如果從文件名表派生,則不需要大小

filename_keyword

+-----+-------------+-----------------+
| id  | fileid (FK) |  keywordid (FK) |
+-----+-------------+-----------------+

filename_ptype

+----+-------------+--------------+
| id | fileid (FK) | ptypeid (FK) |
+----+-------------+--------------+

如果filename只能有一個ptype,則將ptype_id添加到文件名表中作為外鍵。 不需要filename_ptype。

filename_filetype

+----+-------------+-----------------+
| id | fileid (FK) | filetypeid (FK) |
+----+-------------+-----------------+

ptype

+----+-------+
| id | ptype |
+----+-------+

關鍵詞

+----+---------+
| id | keyword |
+----+---------+

文件類型

+----+----------+
| id | filetype |
+----+----------+

文件類型的可能值為:圖像,檔案,電影,音頻等。

暫無
暫無

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

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