簡體   English   中英

關於數據庫表的設計

[英]About the design of the database table

描述如下:

在我的項目中,設計表遇到了混亂。

現在我有四種不同的內容類型,每個字段都不完全相同。

如 ,

表A,B和C具有“類型”字段,而表D沒有,並且由於“類型”字段,某些字段的值不同。

例如,在表A中,如果“類型= 0”,則“長度”字段可以為0.00,否則“長度”字段不能為0.00。 但是,在表D中,長度字段必須存在,並且比表A,B和C具有更多的“工作表”字段。

在這種情況下,我將表A,B,C,D設計成不同的表,即A,B,C,D由表名區分。 太too腫了嗎?

並且我需要將另一個表(表E)與表A,B,C和D的數據相關聯。根據我以前的做法,我需要在關聯的表中添加一個字段,用於區分不同的表,以便它可以找到正確的表內容。 (非常不便)

如果我將表A,B,C,D設計成同一張表,然后通過一個字段來區分A,B,C,D這四個不同的內容,這將導致某些字段變得多余。

例如,表D必須具有“工作表”字段,而表A,B和C則不是必需的。 設計到同一張表,每個表的A,B,C字段將更多為一個“工作表”字段。

好處也很明顯,表E可以直接與同一表的“ id”字段關聯。

設計成四個表,按表名區分

還是設計成一張表,將更多的區別操作,在代碼中完成


更新..

我的四個表(ABCD),只有表D有一個“工作表”字段,少了一個“類型”字段,其他字段與表A / B / C的字段相同,設計成一個相同的表是沒有問題的。

但是,我有一個操作可以對表中的數據進行分頁,可以在其中查詢ABC類型的數據,但是D類型的數據需要一個“ group by”查詢(例如,D類型的數據“ The sum”為“工作表”字段計算“”,其數據與“寬度”字段和“長度”字段相同。

因此,如果我在一張桌子上設計一張桌子,該如何達到上述要求。

感謝您的回答!

根據您的需要,但是可以將主表用於公共字段,將子表用於其他信息。

主表:

TableABCDE: { ABCDE_id (Pk), field1, fieldN}

查爾茲表

DataA:  { A_ID (PK), ABCDE_ID (FK), field_A1, fieldAN}
DataB:  { B_ID (PK), ABCDE_ID (FK), field_B1, fieldBN}
DataC:  { C_ID (PK), ABCDE_ID (FK), field_C1, fieldCN}
DataD:  { D_ID (PK), ABCDE_ID (FK), field_D1, fieldDN}
DataE:  { E_ID (PK), ABCDE_ID (FK), field_E1, fieldEN}

暫無
暫無

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

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