C# 每个城市具有子域的站点架构
我正在开发一个应用程序,它有许多不同城市的子域。为了简单起见,你可以把它想象成craigslist。还需要注意的是,还有一个C# 每个城市具有子域的站点架构,c#,.net,sql-server,asp.net-mvc,C#,.net,Sql Server,Asp.net Mvc,我正在开发一个应用程序,它有许多不同城市的子域。为了简单起见,你可以把它想象成craigslist。还需要注意的是,还有一个admin.mysite.com,它需要使用所有其他站点的数据生成报告 我在决定如何安排事情的最佳实践时遇到了一些困难 以下是我正在考虑的一些事情: 我应该如何布置数据库?我倾向于为每个站点创建一个数据库,然后创建一个管理数据库,其中包含从其他数据库提取的报表视图 我应该如何跟踪用户所在的城市/子域?现在,我正在使用一个动作过滤器为城市设置一个会话变量,我不喜欢这个。我想也
admin.mysite.com
,它需要使用所有其他站点的数据生成报告
我在决定如何安排事情的最佳实践时遇到了一些困难
以下是我正在考虑的一些事情:
currentCity
的变量,我可以通过过滤器而不是会话状态来设置它如果它确实是一个应用程序,内容由主机头名称决定,那么创建多个数据库迟早会成为维护的噩梦。一个数据库就可以了
至于你的第二个问题,你必须确定一个用户id是否可以在多个城市使用,你的答案将来自于此。如果您是通过子域来驱动这个过程,那么我看不出是否需要一个会话变量来复制主机头中的内容(请求[“服务器名称])您实际上是在自己描述它 我将使用以下域模型:
public class City {
id,
name,
// other info
Site site;
}
然后您就有了您的站点模型:
public class Site{
id,
// back navigation : City
Then site properties.
}
另外,我也会使用一个数据库
您可以将用户管理为城市/站点用户,如下所示:
class User{
// props
City navigation
Site navigation
}