我有一个包含大量数据的数据库,并且都是“整洁的”、标准化的(在合理范围内 - 使用 EAV),并且我有存储过程来访问和修改数据。
我还有一个 WinForms 应用程序,用户可以下载它来搜索和查看这些数据(无插入)。为了方便使用和更新,我一直在使用 SQLite 来存储这些数据,并且效果非常好。
我正在努力更新整个过程,我想知道是否应该使用非规范化的数据视图来发送给用户,将所有属性作为列的 1 个表,或者继续使用与主数据库?
我最初的想法是这样的:
非规范化视图: 好处...提供了一种查询数据的简单方法(因为我没有做很多连接,只是一堆列搜索。
缺点...我必须管理第二个数据访问层。当然,我认为这不会很困难,但仍然需要做更多的工作。
如果添加了新属性,我必须再次修改架构并适应更改。而我可以在那里简单地查询属性包和工作表。
相同的架构: 优点...与主数据库相同的布局,因此更新很少,而且我什至可以在构建数据访问层时使用相同的查询,因为 SQLite 不支持存储过程。
缺点...有很多用于查找代码等的小表,因此在构建查询和在 DAL 中管理它时,我可能会遇到问题。
我应该如何进行?