我应该克隆或非规范化我的数据库以便携带吗?

时间:2009-02-05 15:32:55

标签: database portability

我有一个拥有大量数据并且全部“整洁”的数据库,规范化(在合理范围内 - 使用EAV),并且我有存储过程来访问和修改数据。

我还有一个WinForms应用程序,用户下载该应用程序以搜索和查看此数据(无插入)。为了方便使用和更新,我一直在使用SQLite来存储这些数据,而且效果非常好。

我正在努力更新整个过程,我想知道是否应该使用数据的非规范化视图发送给用户,包含所有属性作为列的1表,或者继续使用相同的schema作为主数据库?

我最初的想法是:

非规范化视图 待遇。 提供一种查询数据的简单方法(因为我没有做很多连接,只是一堆列搜索。

...缺点 我必须管理第二个数据访问层。当然,我认为这不会很困难,但仍然需要更多工作。

如果添加了新属性,我将不得不再次修改架构并适应更改。我可以在那里查询属性包和工作表。

相同架构: 优点... 与master数据库布局相同,因此更新很少,我甚至可以在构建数据访问层时使用相同的查询,因为SQLite不支持存储过程。

...缺点 查找代码等有很多小表,所以在构建查询并在DAL中管理时我可能会遇到问题。

我该怎么办?

1 个答案:

答案 0 :(得分:4)

如果您开发应用程序来查询数据视图而不是基础数据本身,那么您将能够为这两种方案保留相同的数据库,而无需担心或需要更改DAL。