相关疑难解决方法(0)

为具有多个多对多关系的视频游戏业务领域设计数据库

我对数据库设计比较陌生,我决定制作自己的假设数据库以进行实践。但是,我无法对其进行建模和规范化,因为我认为存在许多多对多 (M:N) 关系。

一般场景描述

该数据库旨在保留有关在塞尔达系列中工作过的各种人物的数据。我想跟踪的控制台(S) ,一个游戏可以玩上,员工是曾在部分游戏的发展,乔布斯员工有(很多员工在不同的工作职位在多个游戏等)

商业规则

  • 多个员工可以在多个游戏上工作。
  • 多个游戏可以在同一个控制台上
  • 多个控制台可以是同一个游戏的平台。
  • 多个员工可以拥有相同的Job
  • 一个Employee可以有多个Jobs
  • 一个游戏可以有多个员工
  • 一个游戏在它的开发过程中可以有多种类型的工作
  • 多个游戏可以附加相同类型的工作
  • 一个控制台可以有多个人在处理它。
  • 一个可以在多个控制台上工作。

属性名称和样本值

  • Employee Name,可以分为First …

normalization database-design denormalization many-to-many

16
推荐指数
1
解决办法
4905
查看次数

模拟每个音乐艺术家都是一个团体或独奏者的场景

我必须为涉及音乐艺术家描述的业务环境设计实体关系图 (ERD) ,我将在下面详细说明。

场景描述

  • 一个艺术家有一个名称,且必须要么 一个独奏演员(但不能同时)。

  • 一个小组由一名或多名独舞者组成,并有若干成员(应根据组成该独奏者人数计算)。

  • 一个独奏演员可能是一个会员众多的群体或无的集团,并可以播放一个或多个仪器

如何构建一个 ERD 来表示这种场景?我对它的“或”部分感到困惑。

erd database-design database-diagrams subtypes many-to-many

13
推荐指数
1
解决办法
6809
查看次数

为多种用户类型及其联系信息建模数据库结构

我正在设计一个数据库来存储不同类型的用户。主要(但不完全)他们将是演员、导演和作家。目前只有四种相关的用户类型。这个数字有增加的可能性,但概率很低——在这种情况下,这个数字会非常小。

该计划是有一个users几乎完全负责登录站点的表(name,emailpassword列加上一两个其他的,例如它们是否已被批准,和 update_at),以及每个用户类型的附加表,每个用户类型有自己独特的一组列。例如,只有演员才有种族栏,只有导演才有简历栏,只有作家需要提供他们的位置。但是,由于我之前没有管理过如此复杂的数据库,我想知道如何组织几个方面:

首先,用户可以是上述类型中的任意一种或任意组合。所以我知道我需要像(例如)一个director_user带有director_iduser_id列的表格。那么这是否足以能够按角色类型等过滤所有用户?

其次,大多数用户会选择 Twitter 个人资料和电话号码。并且所有演员都必须至少包含一个 URL,用于其他任何在线演员的个人资料;目前他们可以包括三个,但这个数字可能会增加。我是否正确假设每个可能的配置文件/联系方法的单独表格是组织数据的最佳方式?

mysql database-design

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

具有两种可能的所有者/父类型的实体的数据库架构?

我使用带有Sequelize 的PostgreSQL作为我的 ORM。

我有一种类型,User。第二种类型是Group,它可以通过一个GroupMemberships表将任意数量的用户与其关联。Users 也可以拥有任意数量的Groups。

我的第三种类型 ,Playlist可以属于 aUser或 a group。为这种类型设计模式以便它可以拥有一种类型的所有者或两者之一的最佳方法是什么?

我的第一遍创建了两个关联,但一次只填充一个。这可能有效,但看起来很笨拙并且使查询变得困难。

附加信息

以下是我对 MDCCL 通过评论发布的澄清请求的回应:

(1)如果一个播放列表是由给定资集团,可以说,这个播放列表是关系到一个一对多的用户,只要他们是会员这样的小组,对不对?

我相信这在技术上是正确的,但这种一对多关联并不明确存在。

(2) 那么,一个特定的播放列表是否有可能同时被一对多的群组拥有?

不, a 应该不可能被Playlist一对多拥有Groups

(3) 特定播放列表是否可能由一对多拥有,同时由不是该成员的一对多用户拥有?

不,因为如 (2) 中的一对多 from PlaylisttoGroup不应该存在。此外,如果 aPlaylist …

schema postgresql database-design subtypes

8
推荐指数
1
解决办法
1750
查看次数

为资金转移业务开发数据库,​​其中 (a) 个人和组织可以 (b) 发送和接收资金

在相关的业务背景,既成员组织需要有一个帐户资金资金可以转移

  • 会员会员
  • 会员组织
  • 组织组织,以及
  • 组织成员

注意事项

为了为这种场景构建数据库,我创建了以下三个表:

CREATE TABLE Members ( 
  memberid serial primary key, 
  name varchar(50) unique, 
  passwd varchar(32), 
  account integer 
);

CREATE TABLE Organizations (  
  organizationid serial primary key, 
  name varchar(150) unique, 
  administrator integer references Members(memberid), 
  account integer 
);

CREATE TABLE TransferHistory  
  "from" integer, -- foreign key?
  "to" integer, -- foreign …
Run Code Online (Sandbox Code Playgroud)

postgresql database-design subtypes

8
推荐指数
1
解决办法
3045
查看次数

如何在数据库图中对 Letter Transportation 业务上下文进行建模?

我正在尝试为运输公司数据库创建实体关系图。该数据库应存储有关信件交付、将信件从一个仓库转移到另一个仓库以及历史信息的信息。它应该允许跟踪信件,例如,检查特定仓库中特定日期的信件

我要建模的过程如下所示:

  • 信件从发件人处收集并进入仓库
  • 然后它可以在仓库之间转移,
  • 最后,信件交付收件人

商业规则

  • 信件是通过发送和接收的人,一个字母可以通过一个特定的发送通过特定的,并且也收到了
  • 数据库中可以有很多,如果一个存储在数据库中,它必须是某个信件的发送者接收者
  • 运输在不同仓库之间进行,必须由许多信件组成,信件可以是多个运输的一部分(在不同的日期
  • 仓库存储多个信件
  • 可被存储在几个不同的仓库上的不同日期(上'01 …

erd database-design database-diagrams

7
推荐指数
1
解决办法
1319
查看次数

一对“零或一”关系

我有以下要求:

  • 每笔交易都有以下类型之一;借记、贷记、存款或取款。

  • 借方或贷方交易必须有链接的发票记录,并且没有银行账户记录。

  • 存款或取款交易必须有关联的银行账户记录且无发票记录。


目前我的基本设计是这样的:

粗略的数据库设计

我目前的解决方案是:

  1. 一种交易表中发票和银行账户表的两个可为空的外键。但是,我认为可空的外键列不是一个好的设计。
  2. 在链接到交易表的发票和银行账户表中有一个外键。然而,它似乎更难查询,并且它模拟了一对多关系(不是我想要的一对一可选关系)。

我概述的哪种方法是更好的解决方案?或者还有其他更好的方法来满足我的约束吗?

mysql database-design subtypes

6
推荐指数
1
解决办法
3772
查看次数

数据库设计挑战:一个(表)对多(表)关系?

我对 DB 很陌生,在被困住、研究和尝试不同的解决方案几天后,我转向这个社区的专业知识寻求帮助。

我想在我的 MSSQL 数据库中有一个 Person 表,它包含我们所有的联系人。将所有内容放在一张桌子上为我们下游提供了很多便利。挑战是我们必须按类别将 Company 表拆分为不同的表,因为我们需要为每个表提供不同的属性 - 例如,燃料供应商、发动机制造商和维护公司都有自己的表,列出所述类别中的公司,并具有自己的特定属性属性。

因此,我需要一种“一张表到多张表”的关系,其中各种 Company 表仅提供给 Person 表中的一个属性(“Company”)。目标是在 Person 记录中,可以从多个表中选择该人工作的公司 - 只有一家公司。

所以理想情况下是这样的: ER图

有没有办法实现这一目标或任何解决方法?

谢谢你的帮助!

database-design

6
推荐指数
1
解决办法
1208
查看次数

如何为关系数据库中的不同类型对象建模公共数据?

在当前的项目中,我们正在创建一个应用程序,其中包含一些实体,例如Customer、Project、Company、Ticket、Request 等。这些模型是直截了当的。我无法理解的复杂部分如下:

我们希望有一些可以“附加”到各种对象的公共实体。一些示例包括Documents、Tags 和 Notes。对于上面提到的每个域实体,每一个都应该是可管理的。

在服务器端代码 (Java) 中,我们希望将通用功能实现为组件,并将它们重用/嵌入到我们域对象的特定编辑页面上。我们正在使用 ORM,并且还想重用那些“元数据”类。

我认为这个用例很容易用文档数据库建模。 但是如何在关系模型中做到这一点呢?

database-design

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

“灵活”外键约束

我们有一个 Postgres 设置,其中包含多个表,代表项目的不同部分和阶段,目前有 4 个,但将来可能会更多。我们想要制作一个Task带有这些表中任何一个的外键的表。最好是这样的:

CREATE TABLE stage1(
id SERIAL PRIMARY KEY,
description TEXT);

CREATE TABLE stage2 (
id SERIAL PRIMARY KEY,
description TEXT);

CREATE TABLE stage4 (
id SERIAL PRIMARY KEY,
description TEXT);

CREATE TABLE task (
id SERIAL PRIMARY KEY,
description TEXT,
foreignkey_table VARCHAR(20),
foreignkey_id INTEGER);
Run Code Online (Sandbox Code Playgroud)

其中命名的列foreignkey_table可以指示“父”表,并且foreignkey_id将指示“父 ID”。

这些阶段 1 到 3 是为了使示例简单,但它们绝不能合并为一个。将它们视为“准备阶段”、“执行阶段”和“评估阶段”。或者作为完全不同的表格,如“用户”、“公司”和“活动”,每个表格都有自己特定的不重叠内容。

我怎样才能做到这一点?

我读过一些帖子,说这是不可能的,但它们已经很旧了,所以我希望在这些帖子之后实施解决方案。我还在Constraint for multiple foreign key上找到了一个潜在的解决方案,但它是互斥的 (PostgreSQL),这是我目前最好的后备选项。

postgresql database-design

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