我有一个超过100K记录的数据库.许多类别和许多项目(每个类别具有不同的属性)所有内容都存储在EAV中.
如果我试图打破这个方案并为任何类别创建一个独特的表是我必须避免的?
是的,我知道我可能会有很多表,如果我想添加一个额外的字段,我需要更改它们,但这是错的吗?
我还读到,尽管有很多表,但db会填充更多文件,这对任何文件系统都不利.
有什么建议吗?
对于我正在设置的项目,我需要一个非常动态的数据结构.我要存储我没有定义的记录.一条记录可以包含5列,另一条记录可能包含10列.
为了支持这一点,我想使用包含以下列的表:
ResultId RecordId RecordTypeId键值
这支持所有可能的方案,但我做了一些问题.
这将使用SQL2008R2 Express后端在.NET 4,C#中编码.我正在寻找一些最佳实践.
更新!为了澄清一点:我需要存储来自不同的,未知的查询的数据的结果集.我不知道会有多少查询定义或它们会是什么样子.此数据库中的数据仅用于处理.用户甚至不知道这些表存在,没有输入,也不会有任何报告或任何数据以任何方式击中屏幕.结果集用于与其他结果集进行比较,所有这些都通过代码进行.我需要的是一种高度动态的方式来存储这些记录,这些记录在涉及大量记录时保持不变.
我想到的另一个选择是:
ResultId RecordId field1(sql_variant)field2(sql_variant)field3(sql_variant)field4(sql_variant)...
这是一个更好的主意吗?