标签: erd

如何从自然语言文本生成实体关系图和 SQL DDL 语句?

我正在使用 LaTeX 或其他文本宏工具/库。我如何 (1) 使用自然语言文本来描述关系,然后 (2) 生成实体关系图和 (3) 生成 SQL DDL 以从中创建数据库模式?

erd database-design

5
推荐指数
1
解决办法
3866
查看次数

我如何在数据库中建模?

我使用 mysql 作为我的后端数据库。这是用例;

AHolidayPackage配置了一些默认值offerings。这些默认产品可以根据提供的选项升级/降级。每个产品属于不同类型的variants

  • 酒店
  • 起源城市

首先,我想设计 Origin city 的用例:

有一个 GOA 包。它可以根据起源城市提供 3 种变体;

  • 从新德里到果阿
  • 从孟买到果阿
  • 果阿本身(土地包)

粗体表示默认选择)

一种。b. 用户可以从新德里或孟买飞往 GOA。
C。Goa是Land套餐,用户可以自己到达Goa,是一个独立的度假套餐。

此外,我们需要进一步支持以下具有变体类别(Origin City)的用例:

  • 变体中的一个选项可以被管理员标记为默认,这将是提供的包含的一部分(例如孟买到果阿)

在数据库中,我需要对这些关系进行建模。这是我的想法。

HolidayPackageMANYMANY有关系Destination(读起点城市)。这将处理以下选项:

  • 从新德里到果阿
  • 从孟买到果阿

我的顾虑:

  • 我如何处理仅“果阿本身”的土地包裹,而我们没有旅行路线?
  • 如何default在数据库级别标记包的选项?

mysql erd database-design

5
推荐指数
1
解决办法
939
查看次数

支付方式概念和逻辑模型

我需要根据以下要求创建停车场的概念和逻辑(规范化)模型。在我看来,它是一个非常简单的概念,不需要所有表都具有关系 - 但是它们不能被建模为实体。我试着在 stackoverflow 上问这个问题,但几天来没有得到任何反馈。

  1. 三种可能的付款方式:

    • 休假时支付的机票,
    • 带有现金信用的预付卡,
    • 带有“时间信用”的预付卡,
  2. 票价视时间而定:

    1. 1-2 小时 = 0 美元,
    2. 3 小时 = 2 美元,
    3. 4 小时 = 4 美元,
    4. 之后 x 小时 = $(x+1),但最大。24 小时 20 美元(……最容易将它们放到 24 行,对吗?)。
  3. 一张票 (a) 可以享受 20% 的折扣(即在商场购物)。

  4. 现金信用卡使用与门票相同的价格,但有 40% 的折扣。
  5. 现金信用卡可以重新充值。
  6. 计时卡支付一次,并允许在有效期间停车。

问题是我不知道如何将这些突出显示的关系放入逻辑数据库模型以及是否将它们放在那里。在设计中使用独立的表格是否可行?

erd database-design best-practices

5
推荐指数
1
解决办法
2372
查看次数

如何使用鱼尾纹符号在 ERD 中建模“is a”关系?

我必须为作业创建实体关系图 (ERD)。我正在使用 Crow\xe2\x80\x99s 脚符号的特定绘图工具执行此操作。然而有一件事我无法弄清楚:

\n\n
    \n
  • 您如何以 Crow\xe2\x80\x99s 英尺表示法呈现 \xe2\x80\x9cis a\xe2\x80\x9d 层次结构?
  • \n
\n\n

目前,我通过超实体类型与其子类型(、等)之间的一对一关系来展示这一点。Product BooksPapers

\n\n
    \n
  • 这是正确的方法还是错误的方法?(我找不到任何谈论它的网站)。
  • \n
\n

erd database-design database-diagrams subtypes

5
推荐指数
1
解决办法
2107
查看次数

如何对多个表强制执行约束?

我有以下五个表:

  • 产品
  • 特征
  • 供应商
  • 供应商_产品
  • PROVIDER_FEATURE

逻辑如下:

泛型PRODUCT可以有一个或多个FEATUREs。有不同的PROVIDERs 提供相同的产品,但具有不同的细节,同样的FEATUREs,也具有不同的细节。

问题是,使用这个 ERD,我可以创建一个PRODUCT带有FEATUREf1的p1和一个PRODUCT带有FEATUREf2的p2 。然后我创建PROVIDERpv1。现在我可以PROVIDER_PRODUCTPROVIDERpv1 和PRODUCTp1创建一个pvp1 。但是当我创建一个PROVIDER_FEATUREpvp1 时,我应该只被允许添加FEATUREf1,因为这是FEATURE通过PROVIDER_PRODUCT表链接到 p1 的那个。但是我也可以添加一个FEATUREf2。

如何创建一个约束防止进入用户PROVIDER_FEATURE即是其中一部分FEATURE即是其中一部分PRODUCT,但事实并非PRODUCTPROVIDER_PRODUCT是对PROVIDER_FEATURE?我需要在存储过程中解决这个问题,还是有更优雅的方法来强制执行?

+-------------------+       +--------------------+
|                   |       |                    |
| PRODUCT           +-----> | FEATURE            |
|                   |       |                    | …
Run Code Online (Sandbox Code Playgroud)

erd constraint

5
推荐指数
1
解决办法
3506
查看次数

ER 与数据库模式图

当我在网上搜索“ER 图”和“数据库模式”时,找到了这 3 种图类型,但它们都被称为“ER 图”。我想知道:

  • 什么是数据库架构图,什么是 ER 图?
  • 为什么都命名为“ER图”?

图一 在此处输入图片说明

schema erd

5
推荐指数
1
解决办法
2万
查看次数

狗收养数据库设计

抱歉,如果这不是常态,但我正在寻求有关“狗救援/领养”数据库设计的建议。

我已经完成了规范化研究,这是我第一次尝试数据库设计。任何提示/反馈/批评?

最棘手的部分是处理狗/用户/组织并代表谁拥有狗。

  1. 一只狗可以属于一个组织。一个组织可以有多个组织用户。想想动物收容所/磅

  2. 狗可以属于组织用户。想想一个人的乐队,他们拥有一次容纳多只狗的大房子

  3. 狗可以属于单个用户,不隶属于任何组织。认为有人搬到海外,他们需要为他们的狗找一个新主人

因此,dog 表必须附有组织 ID 或用户 ID,或两者兼有。也许是一个触发器,说明一个人必须不为空。

狗收养/救援数据库设计 ERD

mysql erd database-design

5
推荐指数
1
解决办法
2878
查看次数

实体关系设计;最好的场景

TLDR;以下场景的最佳设计选择是什么,每个设计在极大数据量下会如何反应?

我有使用大型政府数据库系统服务 24/7 数据收集、处理和报告的经验。浏览所有不同设计的模式并了解所有这些不同的人设计的所有这些功能如何以某种方式混杂成一个有效的解决方案是很有趣的。就像我相信你们中的一些人知道的那样,有趣的戳时间是一种奢侈,而且大多数周期都是务实的,让系统保持活力而不是改进设计。

我一直在建模一个新的数据库系统,并想对如何关联这些实体有一些想法。


场景:客户、雇主和从业者需要电话号码

我们有四个实体:

  • CLIENT
  • EMPLOYER
  • PRACTITIONER
  • PHONE

我们的初始实体

电话号码按用于接听电话的技术进行分类,所使用的技术通知数据格式限制。

  • 座机
  • 传真
  • 移动的

描述字段指示电话的主要用途;家庭、工作等。


关联这些实体的方法

1. 反规范化PHONECLIENT, EMPLOYER,PRACTITIONER

让我们从糟糕的设计开始,然后从那里开始。去规范化所有的电话号码!

非规范化表

  • 3 个实体,没有关系
  • 如果需要新电话号码,则必须创建新列;导致CLIENT.Phone1Number, EMPLOYER.Phone2Type, PRACTITIONER.Phone3Description;
  • 限制可以为每个实体输入的电话号码数量
  • 冗余,大量开销
  • 进行批量更新或维护会变得乏味

结论:select * from 'no_thanks';


2.建造第n座桥;重命名数据库匹兹堡

对于可以关联电话号码的每个实体,创建一个桥实体将它们组合在一起。

天桥表

  • 7 个实体,6 个关系
  • 数据冗余;电话号码填充在多个位置
  • PhoneNumber在需要时可以使用桥接表;不需要 JOIN 即可PHONE
  • 如果新实体FAMILYMEMBER需要电话号码,则必须创建新的桥接表

结论:也许,取决于维持关系的难度


3. 一个准“星图”

修改PHONE以包含CLIENT.ClientID, EMPLOYER.EmployerID, 的外键 …

erd normalization database-design

5
推荐指数
1
解决办法
1064
查看次数

我关于客户和账户的实体关系图是否正确?

业务领域描述

  • 每个客户都有一个姓名、一个永久地址和一个社会安全号码。
  • 每个客户可以有多个电话号码,同一个电话号码可能被多个客户共享。
  • 一个客户可以拥有多个账户,但每个账户由一个客户拥有。
  • 每个账户都有账号、类型(如储蓄、支票等)和余额
  • 银行为每个账户出具对账单,并每月邮寄给账户所有人。随着时间的推移,同一个账户会出现多张报表。
  • 每个报表都有一个发布日期和一个报表 ID。同一个账户的所有报表都有不同的报表 ID,但两个不同的帐户可以有具有相同报表 ID 的报表。例如,账户 A 可能有一个 ID 为“123”的报表,而账户 B 有另一个 ID 为“123”的报表。

我的实体关系表示

我绘制了以下实体关系图 (ERD) 来表示该场景:

在此处输入图片说明

问题

  1. 是否可以在任何关系的情况下使用 Min-Max 表示法,或者仅在说明中有指示时使用?

  2. 我的多对多关系在这里描绘得正确吗?

  3. 我能否正确描述 Account vs Account Statement vs StatementID 之间的关系?

  4. 根据我的假设,Account Statement 真的是一个弱实体Has吗?真的是一个依赖于 Statement ID 的弱关系吗?发行日期是弱键吗?

erd database-design

5
推荐指数
1
解决办法
3740
查看次数

Web 开发公司的 ERD

我正在研究一个 ERD,它表示Web 开发公司行为模型中实体之间的关系。在那里我有这样的实体:

  1. 顾客
  2. 服务 -----------(如:网页开发、网页设计、网页咨询、...)
  3. 订单项 -------(如:网页开发、网页设计、网页咨询等)
  4. 命令
  5. 发票
  6. 项目
  7. 项目阶段
  8. 任务 ---------------(如:网页开发任务 3、网页设计任务 7)
  9. 开发商
  10. 交付 -----------(例如:开发的网络应用程序、网络咨询会议、...)

到目前为止,我有这张图,但我知道它仍然存在重大问题,这只是一个起点:

ERD1

主要概念

  • 客户在order-items 上生成services,组合形成与order相关的invoice
  • 每个project都有多个project-phases,每个都project-phase与一个 相关order
  • 每个project-phase都有多个tasks,每个都分配给一个developer
  • 每个project-phase都有一个delivery,将在相关orders付款后交付invoice

问题

  1. hascontains完全一样的吗?如果不是,如何在他们之间选择关系?!什么措施?!
  2. 主要概念部分是否有任何合理的问题?
  3. 任何有用的想法或建议来改进这个模型?

对此有任何帮助,将不胜感激。

更新 1

精制版图

ERD2

更新 2

考虑一个快餐店的类比会有所帮助:

  1. 客户 ---------- 饥饿的人 …

schema erd database-design database-diagrams

5
推荐指数
1
解决办法
2198
查看次数