Sql 数据库关系帮助(具有不同类型和组的用户)

Sql 数据库关系帮助(具有不同类型和组的用户),sql,database-design,Sql,Database Design,举个例子,如果我们有一个关于啤酒的网站 我们会有用户,他们可能是也可能不是酿酒商 啤酒厂的用户还可以成为啤酒厂的一部分 当前设置: //编写了类似于简写的语法来演示 使用者{ 角色:用户|版主|管理员;//全局站点权限 类型:User | Brewer;//用户是否注册为Brewer? brewery:brewery;//如果用户是啤酒厂的一部分,则引用啤酒厂 breweryRole:Owner | Member;//引用Brewery角色是用户是其中的一部分 } 酿酒厂{ 所有者:用户;/

举个例子,如果我们有一个关于啤酒的网站

  • 我们会有
    用户
    ,他们可能是也可能不是
    酿酒商
  • 啤酒厂的
    用户
    还可以成为
    啤酒厂
    的一部分
当前设置:

//编写了类似于简写的语法来演示
使用者{
角色:用户|版主|管理员;//全局站点权限
类型:User | Brewer;//用户是否注册为Brewer?
brewery:brewery;//如果用户是啤酒厂的一部分,则引用啤酒厂
breweryRole:Owner | Member;//引用Brewery角色是用户是其中的一部分
}
酿酒厂{
所有者:用户;//引用创建啤酒厂的用户,以便他们始终具有权限
成员:[用户];//属于此酿酒厂的用户列表
}
本质上,我们有不同的用户
类型
,以及用户可能属于的外部


我想听听关于是否应该使用这种模式的反馈意见。我很想看到替代品。

摆脱
酿酒厂。成员

这是多余的,因为您已经有了
用户.brewery
引用,并且您有数据不同步的风险。我的意思是,如果您发现
Brewery.members
列出了用户1234,但该用户的
用户。Brewery
引用了不同的酿酒厂,您如何知道哪个是正确的成员


关系数据库规范化的最大优点之一是每个事实只存储一次,因此它不可能与表示相同信息的其他数据不同步或不一致。

您的问题是什么?