Mar*_*las 12 sql database sql-server
假设您正在为具有许多属性(2400+)的实体建模,远远大于给定数据库引擎的物理限制(例如~1000 SQL Server).除了域/候选键之外,对这些数据点的相对重要性(哪些是最常用的/最常用的)一无所知,您将如何实现它?
A)EAV.(嘘...本机关系工具抛出窗外.)
B)直接穿过.第一个表有一个主键和1000列,直到极限.下表是1000,外键是第一个.最后一张表是剩余的400,也是外键.
C)在ceil( n / limit )表格上均匀条纹.每个表都有偶数列,外键键到第一个表.800,800,800.
D)别的......
为什么?
编辑:这更像是一个哲学/通用问题,与任何特定限制或引擎无关.
编辑^ 2:正如许多人所指出的那样,数据可能没有规范化.按照惯例,当时的业务限制使深入研究成为不可能.
小智 6
我的解决方案:进一步调查 具体来说,确定表是否真正正常化(在2400列这似乎不太可能).
如果没有,重组直到它完全标准化(此时每个表可能少于1000列).
如果已经完全标准化,则建立(尽可能)每个属性的近似人口频率.将最常出现的属性放在实体的"主"表中,对于不常用的属性使用2或3个附加表.(尝试使出现频率成为确定哪些字段应该放在哪些表上的标准.)
只考虑EAV用于极其稀疏的属性(最好不要).
| 归档时间: |
|
| 查看次数: |
2825 次 |
| 最近记录: |