数据库模式一个列条目引用了另一张表中的许多行

布莱恩·里奇

假设我们有一个名为的表Workorders,另一个名为的表Parts我想有一列Workordersparts_required该列将包含一个项目,告诉我该工作单需要哪些零件。理想情况下,它也应包含数量,但是如果需要,第二列可以包含数量信息。

Workorders 看起来像

WorkorderID   date   parts_required
1             2/24      ?
2             2/25      ?
3             3/16      ?
4             4/20      ?
5             5/13      ?
6             5/14      ?
7             7/8       ?

Parts 看起来像

PartID    name           cost
1         engine         100
2         belt           5
3         big bolt       1
4         little bolt    0.5
5         quart oil      8 
6         Band-aid       0.1

想法1:创建一个像这样的字符串'1-1:2-3:4-5:5-4'我的应用程序会解析这个字符串,并表明我需要- > 1engine,3belts,5little bolts,和4quarts of oil

优点-易于创建和理解。

缺点-将使我们对数据的深入内省变得更加困难。(随着时间的推移等费用)


想法2:使用二进制数。例如,参考上面的列表(enginebeltlittle boltsoil使用8位整数是54),因为在54二进制表示110110

优点-数据类型在大小方面是最佳的。另外,我猜想我可以在查询中使用一些棘手的数学技巧来搜索使用的零件(不知道它们是什么,如果我在云端,请纠正我)。

缺点-我不知道如何使用这种方法处理数量。另外,即使使用64位,BIGINT仍然只能提供表中可以包含的64个部分。我希望有数百个。


有任何想法吗?我正在使用MySQL我可能可以使用PostgreSQL,并且我知道它们具有更灵活的datatypeslikeJSON和array,但是我不熟悉查询这些查询将如何执行。而且,与它在一起会更容易MySQL

索拉诺

为什么不创建一个关系表?

您可以创建具有以下内容的名为Workorders_Parts的表:

| workorderId,partId |

因此,当您想从特定工作单中获取所有零件时,只需键入:

select p.name 
from parts p inner join workorders_parts wp on wp.partId = p.partId
where wp.workorderId = x;

查询显示的是:

给我命名属于workorderId = x并在表workorders_parts中列出的零件的名称

请记住,INNER JOIN的意思是“ INTERSECTION”:两个表中都应存在我要查找的数据(通常为id)

内部联接图像

IT将为您提供用于构建工作单x的所有零件名称。

假设我们的workorderId = 1,partID = 1,2,3,它将在我们的关系表中表示为:

workorderId | partId
1 | 1
1 | 2
1 | 3

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

数据库模式一个列条目引用了另一张表中的许多行

来自分类Dev

两列引用另一张表中的一个ID

来自分类Dev

从MySQL数据库的一张表中搜索一列,然后返回另一列

来自分类Dev

从MySQL数据库的一张表中搜索一列,然后返回另一列

来自分类Dev

如何根据表单中的条目从另一个数据库表中获取任何列条目?

来自分类Dev

将数据插入另一张工作表中的下一个空白行或列的宏?

来自分类Dev

根据另一张表中的编号在一张表中插入多行

来自分类Dev

将一张表中的多行合并到一个SQL查询结果集中的多个列中

来自分类Dev

根据两列相等与另一张表中的两列相等来更新一个SQL表

来自分类Dev

使用Postgres:创建一个以另一张表中的数据为条件的二进制数据列

来自分类Dev

创建表时,从另一张表中选择一个列

来自分类Dev

从多行比较的同一张表中获取数据?

来自分类Dev

如何基于一个列将列添加到另一张表?

来自分类Dev

从一个表中获取价值并将其用于另一张表

来自分类Dev

数据库中是一个大表还是许多小表?

来自分类Dev

数据库中是一个大表还是许多小表?

来自分类Dev

在MySQL中从一张表到另一张表的数据

来自分类Dev

使用一张表中的数据查询另一张表

来自分类Dev

编写查询以在一个数据库中的另一个类似数据库中的表中添加缺少的列

来自分类Dev

从一个表中删除行,其中一列中的字段与另一张表中同一列的字段匹配

来自分类Dev

如何在SQL Server 2012数据库的一个表中分配许多列

来自分类Dev

数据库设计:同一张表-混合数据VS几张表-相同模式

来自分类Dev

引用同一张表中的不同列

来自分类Dev

MySQL将一个表中的列与另一数据库表中的另一列进行比较

来自分类Dev

在数据库表中仅标记一个条目的可能性

来自分类Dev

在数据库表中仅标记一个条目的可能性

来自分类Dev

Google表格公式-将多行和列查询到另一张表格的一个单元格中

来自分类Dev

我需要将数据从2列合并到另一列。然后将添加的列的所有行合并到另一张表的一个单元格中

来自分类Dev

GraphQL Prisma 数据库,允许两张表关联一张表

Related 相关文章

  1. 1

    数据库模式一个列条目引用了另一张表中的许多行

  2. 2

    两列引用另一张表中的一个ID

  3. 3

    从MySQL数据库的一张表中搜索一列,然后返回另一列

  4. 4

    从MySQL数据库的一张表中搜索一列,然后返回另一列

  5. 5

    如何根据表单中的条目从另一个数据库表中获取任何列条目?

  6. 6

    将数据插入另一张工作表中的下一个空白行或列的宏?

  7. 7

    根据另一张表中的编号在一张表中插入多行

  8. 8

    将一张表中的多行合并到一个SQL查询结果集中的多个列中

  9. 9

    根据两列相等与另一张表中的两列相等来更新一个SQL表

  10. 10

    使用Postgres:创建一个以另一张表中的数据为条件的二进制数据列

  11. 11

    创建表时,从另一张表中选择一个列

  12. 12

    从多行比较的同一张表中获取数据?

  13. 13

    如何基于一个列将列添加到另一张表?

  14. 14

    从一个表中获取价值并将其用于另一张表

  15. 15

    数据库中是一个大表还是许多小表?

  16. 16

    数据库中是一个大表还是许多小表?

  17. 17

    在MySQL中从一张表到另一张表的数据

  18. 18

    使用一张表中的数据查询另一张表

  19. 19

    编写查询以在一个数据库中的另一个类似数据库中的表中添加缺少的列

  20. 20

    从一个表中删除行,其中一列中的字段与另一张表中同一列的字段匹配

  21. 21

    如何在SQL Server 2012数据库的一个表中分配许多列

  22. 22

    数据库设计:同一张表-混合数据VS几张表-相同模式

  23. 23

    引用同一张表中的不同列

  24. 24

    MySQL将一个表中的列与另一数据库表中的另一列进行比较

  25. 25

    在数据库表中仅标记一个条目的可能性

  26. 26

    在数据库表中仅标记一个条目的可能性

  27. 27

    Google表格公式-将多行和列查询到另一张表格的一个单元格中

  28. 28

    我需要将数据从2列合并到另一列。然后将添加的列的所有行合并到另一张表的一个单元格中

  29. 29

    GraphQL Prisma 数据库,允许两张表关联一张表

热门标签

归档