Sql 创建一个大的holdall表是一种好的做法吗?

Sql 创建一个大的holdall表是一种好的做法吗?,sql,oracle,database-performance,Sql,Oracle,Database Performance,我在一家企业实习,在那里我对SQL Oracle数据库进行选择查询,我想退一步,确定哪些是好的做法,哪些不是好的做法 他们用不同类型的代码制作了一个表格,如: ID | TYPE | Code | ------------------------------------- 1 | 1 | red | 2 | 1 | white | 3 | 1

我在一家企业实习,在那里我对SQL Oracle数据库进行选择查询,我想退一步,确定哪些是好的做法,哪些不是好的做法

他们用不同类型的代码制作了一个表格,如:

ID       |  TYPE       | Code       |
-------------------------------------
1        |   1         | red        |
2        |   1         | white      |
3        |   1         | blue       |
4        |   1         | green      |
5        |   2         | dept1      |
6        |   2         | dept2      |
7        |   2         | dept3      |
8        |   3         | prodtype1  |
9        |   3         | prodtype2  |
10       |   3         | prodtype3  |
如您所见,每个代码的信息都很少。在一个大表中重新组合包含少量信息的小表,并在通过列“type”上的WHERE子句进行选择时检索我们的信息,这是一种有效的做法吗?
按照我的规模,我必须创建三个表(颜色、部门、生产类型),但信息很少。保留三张小桌子需要很多资源吗?从长远来看,使用一个包含不同“种类”信息的大表会导致巨大的问题吗?

我们同时使用键/值表和多个表。这取决于你需要什么

例如,您有一个“dept1”。是否要保存有关部门的更多信息?然后创建一个新表“Department”及其位置,并为这个新表创建一个外键,这是有意义的


至于性能,只要您的索引正确,这两个表都可以正常工作。

我们同时使用键/值表和多个表。这取决于你需要什么

例如,您有一个“dept1”。是否要保存有关部门的更多信息?然后创建一个新表“Department”及其位置,并为这个新表创建一个外键,这是有意义的


至于性能,只要索引正确,这两种模式都可以正常工作。

如前所述,这是一种实体属性值模式,通常被视为反模式。对它最诙谐的谴责可以在

一个真正的查找设计在整体或不增加巨大复杂性的情况下难以实现引用完整性

该设计表示数据库中的数据库,有时称为内部系统效应

EAV模型在某些特定和有限的用例或情况下是有用的。在这种情况下,一个实体的属性可以是非常自由的形式

  • 大量的数据类在属性方面几乎没有共同之处
  • 每个对象的少量属性
  • 流动的业务需求或固定数据需求的困难使传统的数据建模变得困难或不切实际
  • 实体内的更改率很低,仅限于插入和删除
  • 与模型中对象的交互主要在实体级别,即检索整个实体,如果在属性级别执行任何过滤,则很少
它工作的系统是

  • 调查和问卷
  • 产品审查制度
  • 应用程序配置系统
  • 医疗系统

这些天我会质疑RDBMS是否是这些用例的正确解决方案。NOSQL解决方案(如文档存储)更适合上述用例。

如前所述,这是一种实体属性值模式,通常被视为反模式。对它最诙谐的谴责可以在

一个真正的查找设计在整体或不增加巨大复杂性的情况下难以实现引用完整性

该设计表示数据库中的数据库,有时称为内部系统效应

EAV模型在某些特定和有限的用例或情况下是有用的。在这种情况下,一个实体的属性可以是非常自由的形式

  • 大量的数据类在属性方面几乎没有共同之处
  • 每个对象的少量属性
  • 流动的业务需求或固定数据需求的困难使传统的数据建模变得困难或不切实际
  • 实体内的更改率很低,仅限于插入和删除
  • 与模型中对象的交互主要在实体级别,即检索整个实体,如果在属性级别执行任何过滤,则很少
它工作的系统是

  • 调查和问卷
  • 产品审查制度
  • 应用程序配置系统
  • 医疗系统

这些天我会质疑RDBMS是否是这些用例的正确解决方案。NOSQL解决方案(如文档存储)更适合上述用例。

它们似乎是简单的文本查找。每个查找的单独表各有优缺点。没有明确的“最佳”选择。你能列出这种做法的一些优点和缺点吗?因为我发现保留单独的表更为清晰,但它也会使关系模型变得沉重而没有好处。不?这种(反)模式通常被称为OTLT(一个真正的查找表)。IMO的主要缺点是,除非您使用更广泛的外键约束,否则没有什么可以阻止某人在需要颜色的列中存储,例如
prodtype2
,也称
9
。也就是说,为了获得良好的完整性,FK必须覆盖
类型
列以及
id
。它们似乎是简单的文本查找。每个查找的单独表各有优缺点。没有明确的“最佳”选择。你能列出这种做法的一些优点和缺点吗?因为我发现保留单独的表更为清晰,但它也会使关系模型变得沉重而没有好处。不?这种(反)模式通常被称为OTLT(一个真正的查找表)。IMO的主要缺点是,除非您使用更广泛的外键约束,否则没有什么可以阻止某人在列中存储,例如
prodtype2
,也称
9