准备用SQL2005的UDT,把数据直接存为对象,不进行O/R映射。查询上如何处理较好呢?
最大的好处,代码量减少明显、开发效率大大提高:
想象一下,如果我把一个用户的几十个字段作为一个对象存在数据的一个字段中,存储修改的时候就不必编写又长又复杂的SQL语句了。
现在担心的是,如何提高查询效率?因为数据库里面存储的都是对象(可以认为每一条记录除了ID,剩下的字段,主要就是一个对象)。
目前的思路是:
如果客户端要按照对象的某一个或者几个字段查询,可以用CLR编写一个存储过程,在存储过程中查询。但在对象集合中查询效率可能还是有问题,尤其是相比SQL的Select...Where...的效率。
另外一个方式是,将需要查询的字段还是存为单独的字段,这样可以使用Select...Where了。但不太甘心这种折中的方式。