我目前正在开发一个C#/ ASP.NET项目,它将托管几个不同的电子商务网站,这些网站都在同一个应用程序中运行。
我使用LinqToSql(很快转移到PLINQO)来访问我的数据库。该数据库包含有关网站结构(页面,...)和产品/订单/用户数据的信息。
我的问题是,我是否应该只为所有网站使用一个数据库,或者我是否应该为每个新网站创建一个新数据库(相同型号)?
我现在正在使用单个数据库(在某些表中使用SiteID)但我有一个很大的安全问题,如果出现问题,我不能只为一个网站备份/恢复数据库(例如有人擦除所有产品在一个网站上)这是该应用程序的一个重要要求。
所以我想知道那种情况下的好习惯是什么? 如果拆分dbs会有很大的缺点吗? (在结构更改的情况下,我将不得不对几个数据库进行更改,但我想我可以创建一个db版本/更新系统)。 现有的CRM如何处理这个问题? 如果数据库服务器托管许多不同的数据库,这是一个性能问题吗? 复杂的备份/恢复工具会更好吗?
Subquestion: 为了简化网站复制,我还可以将纯CMS数据(Pages,Texts,...)拆分为一个数据库和电子商务数据(产品/类别/订单在另一个数据库中)。这是个好主意吗? 它可以通过一些选择/插入功能来实现,但当然只需复制一个数据库就可以了。
PS:对不起我的约。英语;)答案 0 :(得分:1)
如果您担心将所有网站都放在一个数据库中,则可能已经回答了您的问题。当我以前将它们全部放在一个数据库中时,我曾经明确表示将数据库发送给它们会花费很多钱。
我想估计,如果您的客户希望定期访问分割数据所需的原始数据。但如果不是那么你应该没问题。
就数据库更新而言,您应该拥有用于执行更新的脚本,以便从测试系统转到实时系统,因此在其他系统上运行应该没问题。但是它会产生开销。
简而言之,没有正确或错误的答案,如果你能够保持一致并保持客户满意,那么这样做会分开并向客户收取额外费用。