我可以在一个表中管理员工相关数据吗?

时间:2012-07-18 16:40:26

标签: c# asp.net sql vb.net database-design

我见过人们使用'DataListValue'表存储这些值(Call_Types,DepartmentCodes,Divisions等),这些值经常出现在UI的下拉列表中。

这样我可以在一个表格中管理它们,并且有一个屏幕可以更新代码。

我想知道将DepartmentCode,RoleCode,CountryCode保存在Data_List表中是否可以?或者我应该将它们放在单独的表中?

enter image description here

enter image description here

1 个答案:

答案 0 :(得分:1)

通常的做法是使用单个代码表来存储具有某种表类型列的代码/描述对。例如,您可能会看到如下表格:

<强> CodesTable

  • TABLEID
  • 描述

然而,我从未想过这是个好主意。即使您存储的只是代码和描述,最好为每组代码创建一个新表。这样你的外键关系就会更清晰了。另外,不可避免地,您有一天需要存储关于其中一个代码集的其他数据,并且您最终需要添加一个仅适用于存储在表和列中的一个代码集的附加列对于所有其他行,它将为null。它总是变得难看。

例如,假设,如上例所示,您为所有国家/地区代码设置TableId为“C”,并为所有部门代码将其设置为“D”。但是下个月会出现一个新要求,要求您为每个国家/地区代码存储邮政缩写。您是否在表中添加了PostalAbbreviation列,即使它永远不会应用于Department代码?或者您是否创建了另一个表,只存储每个国家/地区代码的附加数据?你怎么知道“C”和“D”是什么意思除非你有其他地方可以查找它们?围绕它只是一个坏主意。