数据库分组表中的数据

database grouping data in tables

我有一个包含 3 个主要 table 的数据库,每个 table 的 20 个字段中的前 7 个相同。

例如:

table1 - a,b,c,d,e,f,g,x,y,z,df,gt,er,re,re    
table2 - a,b,c,d,e,f,g,q,w,c,v,t,v,b,t,l,f    
table3 - a,b,c,d,e,f,g,b,n,m,j,h,g,d,f,r,e

第一个字段 (a,b,c,d,e,f,g) 相同,其他不同。

我的问题是:

together_table:a,b,c,d,e,f,g

table1 - together_table_id,x,y,z,df,gt,er,re,re    
table2 - together_table_id,q,w,c,v,t,v,b,t,l,f    
table3 - together_table_id,b,n,m,j,h,g,d,f,r,e

或者它必须像:

table1 - a,b,c,d,e,f,g,x,y,z,df,gt,er,re,re    
table2 - a,b,c,d,e,f,g,q,w,c,v,t,v,b,t,l,f    
table3 - a,b,c,d,e,f,g,b,n,m,j,h,g,d,f,r,e

我正在使用 mySql

together_table:a,b,c,d,e,f,g

table1 - together_table_id,x,y,z,df,gt,er,re,re    
table2 - together_table_id,q,w,c,v,t,v,b,t,l,f    
table3 - together_table_id,b,n,m,j,h,g,d,f,r,e

这好多了。查找范式。数据库通常设计为 3rd Normal Form(也写作 3NF)。为此,您从第一个猜测开始,然后应用规则使其成为 1NF(第一范式)。然后应用 2NF 规则,最后应用 3NF。还有其他更高的范式,但只有在极少数情况下才需要。