问题标签 [database-diagram]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
613 浏览

mysql - 如何在数据库 ERD 中为钻石类多对多关系建模

组织 ID 作为外键 组织 ID 作为主键

传奇:

  • PK(蓝色):主键
  • FK(绿色):外键
  • PFK(蓝色):同时主键和外键

如何模拟钻石状(如果术语正确)关系?最好用一个简化的例子来解释:

organization,itemtag实体。

我的目标是建模:

  1. 每一个tag都是独一无二的,属于一个单一的组织。
  2. 每一个item都是独一无二的,属于一个单一的组织。
  3. 项目有许多标签(使用 M2M 表连接)并且相关tag/item对必须属于同一组织。(即来自组织 A 的项目不能与来自组织 B 的标签配对)

我绘制了两个替代解决方案,但没有一个让我满意。

图1打破了第三个目标items并且作为主键tags本身是唯一的id,但是没有什么可以阻止插入item_tag属于不同组织的对。

图 2 没有中断,但弯曲了第一个和第二个目标organization_id作为主键和外键添加到表和item列引用。这可以防止来自不同组织的对。and列现在是不必要的复合主键的一部分,因为实际上单列代表 and 的唯一性。tagitem_tag.organization_idtag.iditem.ididitemtag

如何正确建模这些需求?

0 投票
0 回答
2343 浏览

sql-server - SQL Server 2017 Developer:缺少数据库图文件夹

我的数据库图文件夹有问题。我在任何地方都找不到它。我到处都看过。我已经下载了示例数据库并将其用作数据库所有者,但它不起作用。

0 投票
1 回答
688 浏览

sql-server-2012 - 我无法使用 SQL Server 数据库图表功能

我无法访问 SQL Server 数据库图表功能。我收到一个错误:

db_owner 的成员必须使用数据库图表功能

当我联系我的服务提供商时,他们说他们没有授予我这个db_owner角色,我需要升级到 VPS-server。我尝试使用脚本找到我的许可,并得到以下信息:https ://prnt.sc/m1swe9

这个问题有什么解决方法吗,我可以申请一个特权较低的角色吗?

0 投票
1 回答
418 浏览

database - 数据建模 Microsoft Office

好的,让我首先说明我已经搜索了谷歌以及我能想到的几乎所有资源,但我可能没有正确地提出这个问题。如果没有,请随时纠正该问题。

我想要做的是为我的公司的许多 oracle/Access/SQLServer 数据库的多个模式下的一系列表创建一个关系数据图的野兽。请注意,这些数据库已经存在,而且这是一家石油和天然气公司,所以我们有几个不同的数据库、模式和表。我们使用 Spotfire 进行报告,因此只要我们有适当的关系,我们就可以轻松地链接来自不同来源的不同数据集。

正如您可以想象的那样,这可能是一场噩梦,试图弄清楚这些都是如何相互关联的,尤其是当这些表中的许多表在没有太多结构的情况下被拍打在一起时。我希望能够可视化我将要报告的各种表之间的连接,并认为类似 ER 的图表将是最好的开始。我在使用我可以使用的“建模”工具时遇到了很多麻烦。

我从 Visio 2016 开始,但这太麻烦了,并且数据库图表的设计选项非常有限。我知道我可以通过 excel 导入我的数据表,但这仍然无法超越 Visio 中非常有限的设计选项。请注意,我有大约 100 个表要处理,其中一些表多达 200 列。

然后我开始使用 excel 并想,也许我可以使用 VBA 来链接形状并自动生成我的“更漂亮”的实体,然后我可以在我认为合适的时候手动链接它们。但是,我无法以“ER 图”实体样式链接通用形状,并且办公室中的 smartart 选项不适合此。

有谁知道使用 Office 工具实现这一目标的更好方法?还是我真的必须尝试推动我的公司投资于不同的软件?目前我的工具是:Office 2016(全部)、SQL Developer、SQLServer Management Studio、Spotfire(谁知道这个软件很棒)。

TL/DR:我需要为大约近百个表创建一个关系数据模型,跨多个模式/数据库,每个表多达 200 列,并且我正在寻找一种可以让我有效地做到这一点的工具。

0 投票
1 回答
33 浏览

sql - 我们是否应该将单向的一对多关系分解为 JoinTable

我目前正在开发一个有 2 个表的应用程序。用户和团队。用户有 UserId 作为 PK 和 UserPassword。

Team 表有 TeamId 作为 PK 和 TeamName。

最初我只有一个表,其中有 UserId、UserPassword 和 TeamId,但有人向我指出当前的设计没有标准化。因此,我不得不将表分解为 User、Team 以及一个名为 User_Team 的 Join Table,其中包含 User 表中的 UserId 作为 PK 和 TeamId 作为 Team 表中的 PK。

约束 一个用户只能在 1 个团队中,而 1 个团队可以有多个用户。

因此,据我了解,这是从团队到用户端的 OneToMany。

我已将 UserId 和 TeamId 一起作为复合键,并使其在 JoinTable(User_Team) 中唯一,因此 1 个用户不能在多个团队中。

我的疑问是是否有必要将表单独分解为 Team 表。我不能只在一个表中包含所有 3 个字段。有人可以解释一下它是如何不规范化的。也让我知道在这种情况下是否需要 JoinTable。

0 投票
1 回答
182 浏览

database-design - 两个主键?(电报chat_id)

我正在为 Telegram Bot 设计一个带有 ERD 的数据库,并且我想存储用户。每个用户都有一个 id(主键,int)和 Telegram(int)形式的聊天 id。

Telegram Bot API 对聊天 id 进行了说明:“目标聊天的唯一标识符或目标频道的用户名” https://core.telegram.org/bots/api

现在是我的问题:聊天 id 是第二个主键还是外键,或者只是 NOT NULL 和 UNIQUE?(或者我以前从未听说过的东西)

0 投票
0 回答
259 浏览

database-design - EER 图 - 如何表示主管可以执行其他角色的所有任务

在此处输入图像描述我正在绘制一个 EER 图来表示以下关系。员工可以是主管、文员、助理或 HR。但是主管可以执行其他角色的所有任务。我不确定是否需要将所有者与文员、助理和 HR 的所有关系联系起来。这使得图表更加混乱。

由于主管可以执行任何其他角色的所有任务,我应该将主管连接到文员、助理和 HR 的任务吗?

除了将所有者连接到所有其他任务之外,还有没有更好的方法来简化图表?

0 投票
0 回答
484 浏览

visio - 如何在 Visio 属性中调整属性框的大小

这是一个非常简单的请求,但我找不到解决方案。我有 Visio 2016,Visio 中的布局使用 Crows foot 数据库符号,其中包含实体和属性。但是,似乎我无法更改文本框的粗细,因此结果是一个很长的实体:

在此处输入图像描述

没有前导或尾随空格,文本也不是很大或容器未锁定。

如何更改这些属性框的形状?

0 投票
1 回答
461 浏览

sql - 如何在 Oracle Application Express 中生成数据库图表?

我需要从我拥有的数据库脚本自动生成数据库图。

我已经运行了 sql 脚本并且它有效。现在我需要使用我运行的脚本生成一个数据库图。

我正在使用基于 Web 的Oracle Application Express,我用谷歌搜索了它,但我找不到任何地方如何去做。有谁知道如何使用 Oracle Application Express 中的 SQL 脚本自动生成数据库图。

下面是我的仪表板,我需要点击哪里来自动生成我的数据库图?

在此处输入图像描述

0 投票
1 回答
422 浏览

sql-server - Azure SQL 和 Visio 2019 计划 2 数据库逆向工程向导失败

我正在使用 Visio 2019 尝试对 Azure SQL 服务器进行逆向工程时出现错误的屏幕截图。我已经使用我们的 DB-admin 用户和我的 admin azure 目录登录成功地创建了多个要在向导中使用的用户数据源。数据库凭据已成功验证,当我得到以下信息时,我想要逆向工程的表/视图即将加载:

Visio 逆向工程数据库向导引发错误:

带有一个文本框,上面写着:

我既找不到 sys.servers 也找不到运行 sp.addlinkedserver 因为它不存在。但是,sys.sysservers 确实存在。

我为数据库名称加了星标,因为它没有显示“DB_2.0”的目标数据库,而是显示“DB_2”,这不是数据库的全名。

正如我上面提到的,我相信我有足够的权限,因为我已经尝试了管理员用户名和密码以及使用 azure 目录的管理员登录。所以它可能与没有 sys.servers 表有关?

有没有办法按照 Visio 的要求创建 sys.servers 表或创建存储过程 sp.addlinkedserver?是否建议使用 Azure SQL,我们数据库的命名约定是否与错误有关?