我在想一个问题,并且总是在我们的日常开发生活中发生。 例如,我有一个table1 20列,table2 30列,表3 40列。但对于表1,2,3,他们有共同的10列。关于具有共同属性的SQL表
有几个例子可能会把它放在上下文中。
宠物商店大约有狗,猫,金鱼等,所有的宠物有一个名称,价格,得到的日期等,但每种宠物都有属性,其他类型的没有数据。
约车辆数据库具有关于汽车,卡车(货车),和摩托车的数据。他们都有车辆识别号码,注册号码和制造年份。但他们每个人都有自己的属性。
有关客户数据库有关于公司的那些客户,和个人是客户的数据。他们都有电话号码,但他们也有不同的属性。
那么什么是DB结构的合理设计。 A:用20,30,40列创建3个表格? B:创建3表10,20,30列和另一个表共10列?如果我搜索一个记录,我需要加入共同表
因此我该如何分析这个性能题?不知道sql的工作原理,会为此做一些调查工作。 任何人都可以共享有关设计和不同的性能
您应该在[DBA Exchange](https://dba.stackexchange.com/help/on-topic)上提出有关查询性能的问题。 – F0XS
您应该在需要添加条件的列上添加索引 –
这是一个太宽泛的问题。在事务处理情况下,最好将正常情况下的重复/冗余列归一化。但并非总是如此,这取决于模型中首先包含这三个表的原因,也许存在不同的约束条件。在分析情况下,最好将它们作为一种缓存区分开来,或者最好对其进行规范化处理,这样所有三个数据集都可以放在同一个表中,从而使SQL的编写更加容易。所以,***没有上下文,它取决于... *** – MatBailie