Pra*_*ash 7 mysql database-design optimization
我需要对数据库结构做出决定,决定是将一对一关系列分成多个表并与一个关系 id 链接,还是只是将所有列添加到一个表中。
列数约为 45,我需要对不同查询的不同列上的数据进行排序(每个查询一种排序)。
我将使用 MyISAM 存储引擎。
此外,表中将有数百万条数据。
决定是否拆分表格时要考虑的另一件事是如果您将它们全部放在一个表格中,则表格的宽度。许多数据库将允许您定义一个表,其中所有字段的总长度大于允许的总记录长度。但是,您不能将数据放入超过宽度的记录中。因此,如果您超过了限制,那么拆分表格可能是明智之举。此外,大多数数据库可以在宽度较小的表中更有效地存储和检索数据。因此,如果您要拆分的字段并不总是会使用原始表中的字段进行查询,并且该表会很大,那么拆分这些表可能符合您的最佳利益。
另一件要考虑的事情是,如果您现在处于 1-1 关系中,您以后有可能还是可能想要更改为 1-很多关系?例如,假设您要移动的字段是地址字段。也许现在您只需要一个地址,但是将它们放在单独的表中可以让以后拥有多个地址更容易。
如果拆分表,请确保在 FK 上定义唯一索引以保留一对一关系。
如果关系是一对一的,那么听起来好像在两个方向上都存在函数依赖性,即列表示给定项目的信息片段。
在您的概念模型中,您有实体,列表示属于这些实体的信息。在我看来,除非有非常明显的原因将信息分离到不同的实体中,否则这些列应该位于同一个表中。
归档时间: |
|
查看次数: |
4453 次 |
最近记录: |