标签: database-design

我的 ERD 中的这张表是多余的吗?(图片)

我正在为一个项目开发研究文章数据库。我的教授批准了这个设计,但我觉得 Author's_University 表是多余的,可以将 University_ID 添加到 Articles_Authored 表中。谁能想出一个不改变它的理由?

感谢您的投入。

数据库设计

mysql erd database-design

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

添加引用不是主键或唯一键的列的外键

当我想将表 A 的列的值限制为仅从表 B 的相关列中的一组可选值中获取时,我遇到了麻烦。

问题是表 B 的相关列不是外键。如果我这样做,我想我可以为不同的列值多次使用相同值的正确状态将是不可能的 - 这不是我寻找的行为。

那么可以做什么呢?

mysql database-design

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

如果同一产品有多个供应商,如何去除产品表中的数据冗余

我正在设计一个数据库,其中有不同的产品和供应商。例如,我有一个产品“手机”,比如说苹果 5S。这将通过我的网站从 Mapple、Mango 等不同供应商处出售。

我无法为每个供应商存储数据,因为这会导致数据冗余。我一直在考虑产品表的以下列:

  • 产品编号
  • 供应商编号
  • 产品名称
  • 价值
  • SKUID
  • 供应商名称
  • 还有很多...

在此处输入图片说明

我们可以看到产品名称每次都重复,导致数据冗余。

我主要关心的是如何避免数据冗余?如何设计Product表?

从评论中添加:

  • 产品和供应商之间将存在多对多关系。
  • 供应商和供应商是相同的。它是一个像店主一样的小组织,被我们列出来。
  • 将有许多不同的店主,他们都可能拥有相同的产品。它会每天增加。假设我们有 1000 个店主(供应商),每个店主有 100 个相同的产品,那么不需要的数据就会有 1000*100 行。
  • 表中有更正 Vendor 和 Supplier 是一样的。关于个人或人。他们永远不会成为供应商。

normalization database-design

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

数据字典的替代名称

数据字典的别名是什么?? 指数 ?元数据?数据 ?系统目录

我已经知道的是,数据字典存储所有各种模式和文件规范及其位置。它们还包含有关哪些程序使用哪些数据以及哪些用户对哪些报告感兴趣的信息。但是数据字典的替代名称是什么?

database-design

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

一对多到多表

设计表 A 中的每个条目都连接(1:n)到表 B 或表 C 中的条目的关系的正常方法是什么?

或者特别是:有一个用于角色、电影、剧集和电视节目季的表格。一个角色与 1) 电影或 2) 节目有关(除了 n:n 与季节(季节常规)和剧集之外)

x 可以是电影和节目的 ID。

两个相同的表(tv_characters 和 movie_characters)?

使用两个主键会更好吗(一个总是“电影”或“电视”)?

database-design sql-server

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

对日期范围设置唯一性约束

我有一个表reservation的列roomno(INTEGER)startdate(DATE)enddate(DATE)与主键(roomno, startdate)。

我如何在表上设置约束,以便不允许预订重叠?

我试图在SQLFIDDLE postgreSQL9.3 中实现这个

例如:

101  2016-01-01   2016-01-05
101  2016-01-03   2016-01-06 [This row should not be possible to insert]
Run Code Online (Sandbox Code Playgroud)

startdate并且enddate是数据类型date

postgresql database-design exclusion-constraint postgresql-9.3 range-types

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

非唯一的一对多关系

我是数据库设计的菜鸟,所以请耐心等待。我在 Microsoft Access 中有两个表:

表格1:

| ID | Field1 | Field2 |
|:---|--------|:-------|
| 1  |   A    |    1   |
| 2  |   A    |    2   |
| 3  |   B    |    5   |
| 4  |   C    |    8   |
| 5  |   D    |   20   |
| 6  |   E    |   32   |
| 7  |   F    |   22   |
| 8  |   F    |   7    |
Run Code Online (Sandbox Code Playgroud)

表 2:

| ID | Field1 | Field2 |
|:---|--------|:-------|
| …
Run Code Online (Sandbox Code Playgroud)

ms-access database-design

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

SQL Server 2008:如何向数据库维护用户隐藏数据?

我们的组织聘请第三方公司对我们的数据库进行维护。老实说,目前他们充当我们的 DBA,因为我们没有 DBA。

为了进行维护工作,他们使用的是 SA 用户。

有没有办法让他们成为他们可以使用的新用户,在不实际查看数据的情况下执行所有管理操作。因此,他们可以看到所有表和列,但他们将无法看到任何行。

如果我遗漏了什么,请随时启发我,因为我的 DBA 知识相当贫乏。

database-design sql-server users

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

数据库架构

我处于设计数据库的早期阶段,我几乎没有(没有)数据库设计/规划经验。该数据库是作业跟踪引擎的一部分。

创建作业时,会为它们分配一个作业编号、描述、客户以及从列表中选择的多个关键字。我的问题与选择将所选关键字链接到作业的最有效(运行时速度)方式有关。

我看到了很多方法来做到这一点,有些不那么传统,而且可能比其他方法更危险......

选项 A - 将可以分配给作业的关键字的最大数量限制为值“N”(可能为 5),并具有下表列。

  [id] [job number] [description] [client] [keyword 1] .. [keyword N]
    1     123           zyx          kk        word           test
    2     183           tyx          ff        test           -
    3     214           xyx          tt        bleh           -
Run Code Online (Sandbox Code Playgroud)

选项 B - 有一个关键字表,每个关键字都有一列。整个数据库中的关键字是手动管理的,但可以有任意数量的关键字,比如说 X(可能超过 200 个)。创建作业时,表中会添加一个新行,并在已选择关键字的每一列中输入作业编号或 id(来自另一个表的链接)。例如

[word]     [test]       [bleh]   ....... [keyword X-1]     [keyword X]


 1            -            1                      1             -
 -            2            -                      -             -
 -            -            3                      3             3
Run Code Online (Sandbox Code Playgroud)

选项 C - 类似于“选项 B”,除了关键字有自己的表格。但这只是意味着我的数据库中有 X 个表...

在这个阶段,选项 A 是领跑者,但我并不特别喜欢对可以分配给工作的关键字数量的硬限制。任何人都可以提出替代设计,这样我就没有可笑的行/表数量,因此我不必限制分配给工作的关键字数量。

谢谢

database-design

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

我的 MySQL 数据库中列的最大可能双精度/浮点数

我正在开发一个 PHP 应用程序,我需要在其中存储大于 100 万的值,但具有浮点的灵活性。我知道传统的 float 和 double。我希望最多存储两个小数点,并且只处理具有 2 个小数的数字的操作。

我选择了 double 和 unsigned 的列类型,但是每当我存储值大于一百万的行时,它就会被截断为 999999.99

为什么是这样?我正在寻找正确的数据类型/解决方案。如果您能指出我正确的方向,我将不胜感激!

提前感谢您的时间!

干杯。

mysql database-design datatypes floating-point

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