sql-server表有60列是否正常,是否有更好的方法来保存数据?

问题描述 投票:0回答:1

我正在为我工​​作的公司的变压器数据库工作。

我在设计工作,我得到60个列的una表,我真的是新的工作,但我从来没有在同一个表中获得这么多列,这是正常的吗?,在同一个表中是可能的某种子类别?

我正在使用SQL Server 2008

非常感谢我的英语:P

sql asp.net sql-server sql-server-2008
1个回答
0
投票

表可以具有那些数量(60)的列。但是,它也不常见。

将数据分成多个表格并且不存在歧义总是一个好主意。我们将此过程称为:规范化。通过这种方式,我们可以防止任何潜在的异常。检查以下示例:

emp_id  emp_name  emp_address   emp_dept
101     John      London        D001
101     John      London        D002
123     Alex      Toronto       D300
166     Jack      Dubai         D900
166     Jack      Dubai         D004

这里有2个“杰克”。如果我们需要在employee:101上执行更新,它将创建一个update anomaly

如果列不允许null值,我们不能插入任何带有null emp_dept值的新数据,这会导致insert anomaly.

如果部门D300关闭,那么部门将从数据库中删除,那么员工Alex也将被删除,这将导致数据丢失并导致delete anomaly

规范化上表的一种可能方法是通过分离emp_id和emp_dept属性来重新组织表,如:

emp_id  emp_name  emp_address
101     John      London        
123     Alex      Toronto      
166     Jack      Dubai

emp_id  emp_dept
101       D001
101       D002
123       D300
166       D900
166       D004

这也通过消除重复数据来帮助记忆。请访问网站了解更多示例:https://beginnersbook.com/2015/05/normalization-in-dbms/

© www.soinside.com 2019 - 2024. All rights reserved.