我已经开始维护一个应用程序,该应用程序随附一个大型数据库,部分未归一化/相当混乱。大量的重复数据和一些包含大量字段(30+)的表格。例如,我有一个名为Orders的表格,其中包含许多字段。我会去分割这张表,但不允许更改数据库布局。现在,如果我坚持以存储库模式为例,我相信我应该为它创建一个Order实体和CRUD方法。问题是,业务逻辑几乎从不需要加载/更新整个订单实体,而只需要一个子集。这将构成很多实体(如FullOrder,OrderMetaInfo,OrderProcessingDetails等)。非常规数据库布局的数据访问模式
我的问题是,处理这种数据库混乱的最好方法是什么?我正在考虑创建一个名为Orders的简单类,前面提到的实体为POCO,而不是像UpdateOrderMetaInfo()或GetOrderProcessingDetails()这样的方法。这似乎是一个很好的方式,直到你开始思考,有两个表,一个是订单,另一个是ArchivedOrders(不,字段不相同但非常相似 - 甚至不问)。看来我会运行大量的重复代码。现在我开始考虑编写一个非常简单的数据库访问类,在那里你传递一个手工的SQL查询并返回记录集,就像在过去的美好时光一样。你有比这更好的主意吗?
事实和限制:它是一个Sql数据库,该项目是用C#编写的。还有另一个系统使用相同的数据库,所以更改数据库布局是而不是的一个选项。使用EF或任何第三方产品进行数据访问,也可以使用而不是。
对不起,对于广泛的长篇文章,并感谢您的反馈。
卖给他们,让你用db改变另一个应用程序! – Nick