我正在为WP8开发应用程序,可以存储十几种预定义类型的文档(例如护照,保险......)。
所以,我的表格包含这样的列:int id, string name, int order
问题是不同文档类型的其他字段不相同。
对于护照,它将是:number int, photo Bitmap
保险:number int, holder string
解决该问题的第一种方法:将所有数据存储在XML列中。
第二:将每种类型存储在专用表中(我担心Linq查询将非常庞大且从10个不同的表中获取数据的速度很慢)。
第三:将所有元存储在另一个表中(例如表field_types
,field_to_docs
,field_values
)。
我认为最快的方式当然是XML。你怎么看待这件事? 如何在XML中存储位图,或者我需要创建另一个专门用于存储位图的表而不是同步它们将从XML引用?
答案 0 :(得分:0)
我为主表Document建模,然后为每种文档类型建立一个小表,并附有其特殊性。
在DOCUMENT中,您将拥有所有常用字段和文档类型 在小表中,主表的ID和此类文档的唯一字段。
检索文档时,您必须对外键执行JOIN,但应该快速而简单。
我考虑的其他选项只有一个包含大量无效字段的表,并且取决于重建一个或另一个的文档类型,并将其他特定于文档的字段保留为null。如果您使用的是面向对象语言,那么请选择第一个语言。这更容易。