具有不同属性的用户和角色的数据库规范化

时间:2018-07-05 17:36:40

标签: database-normalization

当用户和角色具有某些角色具有相同属性而其他角色具有不同属性的情况时,对场景进行规范化的正确方法是什么?让我们来看下面的例子:

tb_User(用户ID,名字,姓氏,电子邮件);

tb_Role(角色_角色)

tb_Plant(plant_id,植物)

tb_Entity(实体ID,实体)

我的角色包括:管理员,总经理,工厂经理和实体经理。管理员和总经理角色没有任何其他属性,但是工厂经理具有与其关联的工厂,而实体管理者具有与其关联的实体。我应该这样创建一个表并让Plant / Entity在其适用的位置具有这样的值吗?

tb_user_role(user_role_id,user_id,role_id,plant_id,entity_id)

,或者像这样具有独立的工厂和实体表:

tb_user_role(user_role_id,user_id,role_id)

tb_user_role_entity(user_role_entity_id,user_role_id,entity_id)

tb_user_role_plant(user_role_plant_id,user_role_id,plant_id)

另一种考虑是,一个用户可以拥有许多工厂,因此一个工厂管理员角色和许多工厂对于实体都是相同的。

感谢您的帮助,

0 个答案:

没有答案