<分区>
例如,我有“城市”列。 95% 的 City 值为 NULL。制作类似 city_names(Id PK, City) 的表并用新列 City_id 替换 City(FK 引用 city_names(id))是个好主意吗?这是我对此的看法。它们基于一般的计算思想。请纠正我,这不适用于 RDMS。
第一种方式:O(n)存储O(n)批量操作O(1)随机访问
第二种方式:O(n) 存储 O(n * logn) 批量操作由于 n 请求索引结构(B 树,例如)O(lon n) 随机访问
这是完整图片。我有 1M 行表。它生长。像 City 这样有 80 列。他们几乎都为空。但是,它们是社区可编辑的。因此,我必须在其中提供全文搜索、快速编辑时间和复杂查询(针对高级用户或机器人)。在将来,根本不会有 NULL。所以我必须使用绞车方案来编辑阶段,并在最终形状中使用表格?
如果重要的话,我会使用 postgres\mysql。