【问题标题】:CMS/E-commerce asp.net project: one database or multiple databases?CMS/电子商务asp.net项目:一个数据库还是多个数据库?
【发布时间】:2010-03-31 10:57:10
【问题描述】:

我目前正在开发一个 C#/ASP.NET 项目,该项目将托管多个不同的电子商务网站,它们都在同一个应用程序中运行。

我使用 LinqToSql(即将迁移到 PLINQO)来访问我的数据库。该数据库包含有关网站结构(页面、...)和产品/订单/用户数据的信息。

我的问题是,我应该为所有网站只使用一个数据库,还是应该为每个新网站创建一个新数据库(相同模型)?

我现在使用的是单个数据库(在某些表中包含 SiteID),但我有一个很大的安全问题,如果出现问题(例如,有人删除了所有产品),我不能只为一个网站备份/恢复数据库在一个网站上),这是应用程序的一项重要要求。

所以我想知道在这种情况下有哪些好的做法? 如果拆分数据库有很大的缺点吗? (如果结构发生变化,我将不得不对几个数据库而不是一个数据库进行更改,但我想我可以制作一个数据库版本/更新系统)。 现有的 CRM 是如何处理这个问题的? 如果数据库服务器托管许多不同的数据库,是否会出现性能问题? 复杂的备份/恢复工具会更好吗?

子问题: 为了简化网站复制,我还可以将纯 CMS 数据(页面、文本等)拆分到一个数据库中,将电子商务数据(产品/类别/订单在另一个数据库中)拆分。这是个好主意吗? 它可以通过一些选择/插入功能来实现,但当然只复制一个数据库会更容易。

PS:对不起我的大约。英语;)

【问题讨论】:

    标签: .net asp.net database linq content-management-system


    【解决方案1】:

    如果您担心将所有网站都放在一个数据库中,那么您可能已经回答了您的问题。当我过去将它们全部放在一个数据库中时,我曾经明确表示将数据库发送给它们会产生成本。

    我认为您的客户是否希望定期访问您需要拆分数据的原始数据。但是,如果没有,那么您应该没事。

    就数据库更新而言,您应该有脚本来进行更新,以便从测试系统到实时系统,因此在其他系统上运行应该没问题。但是,它会产生开销。

    简而言之,没有正确或错误的答案,如果您可以保持团结并让客户满意,那么就这样做,否则分开并向客户收取额外费用。

    【讨论】:

    • 感谢您的回复,我决定拆分我的数据库,因为这是最方便的方式来确保安全性/向客户端发送数据的能力。现在我在设计 2 个数据库时遇到了一些困难(例如,我在哪里存储我的国家列表和其他常用表),但这是另一个问题;)
    猜你喜欢
    • 2011-02-23
    • 2010-09-06
    • 1970-01-01
    • 1970-01-01
    • 2010-11-25
    • 2012-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多