【问题标题】:One database or many for multicountry web application一个或多个用于多国 Web 应用程序的数据库
【发布时间】:2012-03-09 19:43:31
【问题描述】:

让我们对我的这种情况有一些不同的看法。

我正在使用数据库创建一个 (asp.net) Web 应用程序(sql server express,最大 10gb db 大小)。

此应用程序管理实体,但实体与国家相关,一个国家 - 多个实体。

首先,我无法预测数据库将如何增长。这是我在空闲时间做的一个个人/爱好项目。

我担心是否应该为每个国家/地区创建一个特定的数据库副本。我这么认为的理由是:

  • 数据库的大小会更小,所以从 SQL Server Express 开始我不会遇到大小问题。
  • 再次,数据库大小。由于每个国家/地区较小,因此性能会更好。
  • 可以在每个国家/地区的低峰时间执行维护任务(备份、部署)。
  • 如果每个国家/地区有关保护数据的法律不同,我可以根据具体法律调整每个数据库。
  • 每个国家/地区的自定义文本搜索。这真的不是问题,因为我认为我可以为每个不同的国家/地区创建一个视图并对该视图进行文本搜索。

那么,如果我只有一个适用于所有国家/地区的数据库,那么会有一些优势:

  • 维护将变得更加简单。只有一个数据库意味着只做一次。
  • 没有冗余代码。我在这个 Web 应用程序中经常使用存储过程。一项更改只需在生产中发布一次。

天啊!写下每个替代方案的优点似乎使多个数据库成为赢家!看来单库是给懒人用的……

无论如何,我想阅读更多的观点,所以请大家,随时贡献你的想法。谢谢!

【问题讨论】:

    标签: database-design


    【解决方案1】:

    我会选择 1 个数据库。

    为了更容易的维护工作。世界上有近 200 个国家/地区,即使您拥有其中一半的数据库。如果您想在表中添加一列并且您必须在每个数据库中更改它,那一天将是一场噩梦。(确保您不会忘记 1 个数据库或如果您输入错误的名称等)。

    此外,以当前计算机的功率/容量,性能应该不是问题。 (除非它对您的程序非常重要)。

    【讨论】:

    • 我喜欢你的回答。即使有 10 个国家的 10 分贝也会变得有点痛苦。使用 db sincrhonization 脚本可以缓解这种情况。
    • 您的应用程序持久性配置也将非常庞大。
    猜你喜欢
    • 2015-04-03
    • 1970-01-01
    • 2011-05-19
    • 1970-01-01
    • 2011-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多