gpt4 book ai didi

c# - 转换我已经创建的应用程序和数据库以支持单个数据库上的多个站点

转载 作者:行者123 更新时间:2023-11-30 16:28:02 26 4
gpt4 key购买 nike

几年前,我为我的一位客户创建了一个自定义 CMS,并不断开发它。它有实体、实体组和许多其他表,并使用 LINQ2SQL 访问数据。我有 4 或 5 个生成自定义控件的基类。

最近,我们需要创建另一个使用当前网站成员资格和身份验证提供程序的网站,其结构相同,但内容不同。

这让我想到使用单个数据库来存储两个站点的内容,但通过向每个站点和内容表的 web.config 添加一个字段(如 ApplicationName)来分隔数据。类似于 ASP.net 的默认成员资格和角色提供程序的当前设计。

但是,我不确定这是否是最佳解决方案。我想知道您对设计此类系统的建议。

我想尽量减少为此所需的更改。例如,如果有一种方法可以在创建数据库上下文时设置 ApplicationID(我在我的基类中创建数据库上下文,因此更改将在一个位置),那么就不需要更改现有的查询!或者,有没有办法在查询发送到数据库引擎之前抓取并修复查询?以上就是我的想法,您还有什么建议吗?

问题很简单:将现有数据库和应用程序用于多个站点的最佳解决方案是什么,并且更改和工作量最少?

最佳答案

如果站点是分开的,我强烈建议使用多个数据库;这将:

  • 降低暴露错误数据的风险
  • 允许更精细的备份/维护
  • 避免数据库过大
  • 允许您在不再需要时彻底删除网站
  • 允许您在数据库服务器之间平衡 DB(站点)
  • 避免影响性能(为每个已编写的查询添加额外的过滤器是一件坏事)
  • 减少您需要对应用进行的更改数量

基本上,我会让您的中央“GetConnection()”方法担心 Multi-Tenancy ,为站点/配置/用户提供正确的连接。

提示:这就是我们在 stackoverflow/stackexchange 上所做的

关于c# - 转换我已经创建的应用程序和数据库以支持单个数据库上的多个站点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7377288/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com