首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Server数据库设计--1张表与2张表

Server数据库设计--1张表与2张表
EN

Stack Overflow用户
提问于 2019-10-15 17:09:17
回答 1查看 40关注 0票数 0

我有一个名为Report的表和另一个名为ReportRights的表。这些表的目的是限制对基于用户或用户组的报表的访问。

表是

  • ReportRightsId (int -代理键)
  • ReportId (int - Foreign Key to Report)
  • UserId (int - null FK to User)
  • GroupId (int - null FK to Groups)
  • HasAccess (位默认值0)

)

这方面的问题是,我想向ReportId+UserId和ReportId+GroupId添加一个唯一的约束,但在这个表结构中,我不能这样做,因为ReportId 1、UserId 1、groupid为NULL,并且试图添加reportid 2的权限-- trips --reportid 1 groupid约束。

这个设计不好吗?我应该有两个表: ReportGroupRights和ReportUserRights?如果我要创建一个前端用户界面,它们都将由相同的“网格”管理,所以1表对me...but来说是有意义的,不能只执行一个用户记录或只有一个组记录是有问题的。

解决这个问题的最佳做法是什么?

EN

回答 1

Stack Overflow用户

发布于 2019-10-15 17:17:53

设计不错。

使GroupId为空,因此您也可以只为用户输入权限。

另外,唯一的约束应该放在三列上:ReportIdUserIdGroupId

因此,您可以允许每个用户/组有多个报表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58399617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档