AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / dba / 问题 / 5699
Accepted
codecool
codecool
Asked: 2011-09-14 03:45:08 +0800 CST2011-09-14 03:45:08 +0800 CST 2011-09-14 03:45:08 +0800 CST

通过 E-R 图描述访问表的权限

  • 772

我正在为 Web 应用程序设计数据库架构。这是我第一次设计具有商业目的的数据库。在完成需求阶段后,我开始绘制 ER 图。

我的问题是关于架构中的条件。

我有一个表类别和子类别,它们之间存在一对多关系。一个类别有许多子类别。

分类表

====================
| 类别名称 |
====================
| 类别1 |
| 类别2 |
====================

子类表

===========================================
| 业主类别 | 子类别名称 |
===========================================
| 类别1 | subc1 |
| 类别1 | subc2 |
| 类别2 | subc3 |
| 类别2 | subc4 |
===========================================

现在,如果用户有权访问 ,subc1他就可以访问category1.

有没有办法用ER图来描述这个场景,查图就知道这个约束?

基本上我想知道这个访问约束是如何传播到下一阶段的设计的。

database-design permissions
  • 1 1 个回答
  • 1117 Views

1 个回答

  • Voted
  1. Best Answer
    Joel Brown
    2011-09-14T16:00:12+08:002011-09-14T16:00:12+08:00

    实体关系图显示实体和关系,包括关系的基数。

    有些人和工具对此进行扩展以显示属性、主键和外键。我什至看到一些尝试以视觉方式表示一些约束,例如属性可空性和基本数据域。一些经典的图形约定,如 IDEF1X,还包括有关关系性质的信息(无论它们是否是孩子的决定因素)。

    我不知道在 ER 图中显示访问规则的任何图形约定。

    我会争辩说,试图将太多信息打包到模式的可视化表示中会使图表变得难以理解,以至于变得毫无帮助。我会说这适用于访问规则之类的东西。

    为了显示访问规则,您确实需要显示访问者(即用户),因为不同的访问者通常具有不同的访问规则。在 ER 图中没有包含用户的既定约定,所以我不会尝试那样做。

    作为替代方案,我建议使用表格或图表来指示哪些用户可以访问哪些实体。您可以包括一列,显示在表级规则上扩展的数据级规则。数据级别规则可能类似于“用户只能访问属于他们拥有的类别的子类别”。

    它不会产生漂亮的图片,但我相信在尝试向开发人员或客户解释您的设计时,可理解的文档将胜过漂亮的图片。

    • 1

相关问题

  • 过滤索引是否有助于改进基于输入时间的查询,还是应该避免这种情况?

  • MySQL VARCHAR 和 TEXT 数据类型有什么区别?

  • 存储计算值或根据要求重新计算它们更好吗?[复制]

  • 存储与计算聚合值

  • 在数据仓库中实现多对多关系有哪些方法?

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    你如何mysqldump特定的表?

    • 4 个回答
  • Marko Smith

    您如何显示在 Oracle 数据库上执行的 SQL?

    • 2 个回答
  • Marko Smith

    如何选择每组的第一行?

    • 6 个回答
  • Marko Smith

    使用 psql 列出数据库权限

    • 10 个回答
  • Marko Smith

    我可以查看在 SQL Server 数据库上运行的历史查询吗?

    • 6 个回答
  • Marko Smith

    如何在 PostgreSQL 中使用 currval() 来获取最后插入的 id?

    • 10 个回答
  • Marko Smith

    如何在 Mac OS X 上运行 psql?

    • 11 个回答
  • Marko Smith

    如何从 PostgreSQL 中的选择查询中将值插入表中?

    • 4 个回答
  • Marko Smith

    如何使用 psql 列出所有数据库和表?

    • 7 个回答
  • Marko Smith

    将数组参数传递给存储过程

    • 12 个回答
  • Martin Hope
    Manuel Leduc PostgreSQL 多列唯一约束和 NULL 值 2011-12-28 01:10:21 +0800 CST
  • Martin Hope
    markdorison 你如何mysqldump特定的表? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    Stuart Blackler 什么时候应该将主键声明为非聚集的? 2011-11-11 13:31:59 +0800 CST
  • Martin Hope
    pedrosanta 使用 psql 列出数据库权限 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 对 SQL 查询进行计时? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas 如何从 PostgreSQL 中的选择查询中将值插入表中? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas 如何使用 psql 列出所有数据库和表? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    BrunoLM Guid vs INT - 哪个更好作为主键? 2011-01-05 23:46:34 +0800 CST
  • Martin Hope
    bernd_k 什么时候应该使用唯一约束而不是唯一索引? 2011-01-05 02:32:27 +0800 CST
  • Martin Hope
    Patrick 如何优化大型数据库的 mysqldump? 2011-01-04 13:13:48 +0800 CST

热门标签

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve