Sql 添加新表的好处
我有一个理论问题。假设我有一个名为“Worker”的表,用于办公室工作人员,其中一列是“Role”。我可以添加一个约束(签入(“主管”、“人力资源”、“秘书”、“私人助理”等)。创建一个包含所有可能角色的单独新表(“角色”)以及一个与这两个表相关的id有什么好处 创建一个单独的新表(“角色”),其中包含所有可能的角色和一个与这两个表相关的id,有什么好处 以下是我脑海中的一些想法:Sql 添加新表的好处,sql,database-design,Sql,Database Design,我有一个理论问题。假设我有一个名为“Worker”的表,用于办公室工作人员,其中一列是“Role”。我可以添加一个约束(签入(“主管”、“人力资源”、“秘书”、“私人助理”等)。创建一个包含所有可能角色的单独新表(“角色”)以及一个与这两个表相关的id有什么好处 创建一个单独的新表(“角色”),其中包含所有可能的角色和一个与这两个表相关的id,有什么好处 以下是我脑海中的一些想法: 任何其他角色都是对表定义的更改,而不是对表的标准插入 您可以使用表中的数据来驱动列表框之类的UI项 如果重命名/
- 任何其他角色都是对表定义的更改,而不是对表的标准插入
- 您可以使用表中的数据来驱动列表框之类的UI项
- 如果重命名/添加/删除角色,则必须删除约束,更新
表中的所有记录,然后重新添加新约束Worker
- 您可以添加有关角色的辅助数据,而无需向
Worker
- 您必须在DB之外的层中复制约束
- 任何其他角色都是对表定义的更改,而不是对表的标准插入
- 您可以使用表中的数据来驱动列表框之类的UI项
- 如果重命名/添加/删除角色,则必须删除约束,更新
表中的所有记录,然后重新添加新约束Worker
- 您可以添加有关角色的辅助数据,而无需向
Worker
- 您必须在DB之外的层中复制约束
(CHECK IN role ('director', 'HR', 'Secretary', 'PA', ...)
将角色存储在单独表中的优点。以下是一些:
- 您有一个其他任何人都可以访问的所有角色的列表
- 您可以提供有关该角色的其他数据——翻译成另一种语言、缩写、薪资等级等
- 添加或修改现有角色只需要更改数据,而不需要更改数据库的结构
- 您可以提供元数据,例如创建日期和创建角色的人
(CHECK IN role ('director', 'HR', 'Secretary', 'PA', ...)
将角色存储在单独表中的优点。以下是一些:
- 您有一个其他任何人都可以访问的所有角色的列表
- 您可以提供有关该角色的其他数据——翻译成另一种语言、缩写、薪资等级等
- 添加或修改现有角色只需要更改数据,而不需要更改数据库的结构
- 您可以提供元数据,例如创建日期和创建角色的人