我正在为客户处理的一个 sql 数据库是用一种不寻常的结构创建的。
例如,不要为以下各项设置一个表:
国家,
状态,
城市,
单位(英寸、米、英里/小时)、
他们只有两张桌子:
- 一个用于列表 ID(字段:列表索引和列表名称)。记录前:城市,单位
- 一个用于给定列表中的项目(字段:项目索引、列表项的描述和引用上述相关列表索引的 fk)。记录前:km/h、亚特兰大、英里、巴黎
listitem 表中 id 的序列是这样组织的,以便在一定程度上将 listitem 中不同组的项目分开,以防需要在列表中添加新项目:
Unit 的 Seq 可能从 20000 开始
城市序列可能从 30000 开始
因此,如果需要添加 10 个新单位,则索引可以与其他已创建的单位保持分组,而不会在其他项目(如城市)中溢出。应用层处理每组项目的序列范围。
他们在列表表中有 30 多个这样的列表,并且在项目表中有数千个项目,每个项目都与列表 ID 相关。
我认为这是没有意义的,原因有很多。但他们认为这很有效,因为“我们只有 2 张桌子而不是 30 张桌子”。他们还认为这是一种新颖且有点典型的工作方式。我知道这在技术上是可行的,但我预计这两个表的实现会出现不必要的和多重问题。
我的问题:做上述事情是典型的还是公认的做法?