总网站和子网站整体建设策略,有兴趣的朋友,欢迎进来讨论!
现要做一个大公司网站,这个公司有10来个分公司,网站除了总公司网站外,每个分公司也要有一个分网站。由于所有网站同一个服务器,为了尽量减少重复工作,我打算用同一个站点,同一个数据库来包含总公司的网站和分公司的网站,即一个Web.config,然后每个公司的网站文件用一个文件夹。在数据库里面,每个分公司都有一个公司代码company(1\2\3\4...)来标识。
在分公司的页面里面,就可以这样读取数据 select * from 新闻 where company=公司变量。
现在问题是,几乎每个SQL语句都需要 where company=公司变量 ,所以,我想能不为每个分公司的网站设置一个分站点的全局变量来控制“公司变量”,那么我在每个 SQL 语句里面就不用写上具体数字,而是一个已经读取的变量。
希望我说得明白,谢谢您能参与讨论!
问题点数:88、回复次数:11Top
1 楼saucer(思归)回复于 2005-07-06 01:23:39 得分 68
你的SQL语句都是写在哪里的?是在持久层里么?
有几种方法,
1。在每个公司文件夹里,加一个web.config
<configuration>
<appSettings>
<add key="CompanyID" value="4" />
</appSettings>
</configuration>
然后在你的编码里用
System.Configuration.ConfigurationSettings.AppSettings["CompanyID"]
2。把你的公司的集合名字放在一个Application变量或某个类的静态变量里,然后在Application_BeginRequest里,分析当前用户请求的URL,找到对应的公司ID,存在HttpContext.Current.Items里Top
2 楼clm0010(小蔡)回复于 2005-07-06 07:54:19 得分 0
非常感谢思归在凌晨的回复,SQL语句是写在MS SQLSERVER 的存储过程里面的,就是数据层里面,刚开始我也想写在web.config里面,但是因为分公司的标识是标量,所以放弃了这个想法。Top
3 楼saucer(思归)回复于 2005-07-06 08:12:01 得分 0
>>>但是因为分公司的标识是标量
"分公司的标识是标量"? 什么意思?web.config也可以在子目录里存在的
Top
4 楼codeangel(http://www.wSoft.Net)回复于 2005-07-06 09:06:46 得分 3
分公司的标识是标量的意思可能是,
他的关键table中都有companyID这个Field.用它来区分分公司的record.Top
5 楼clm0010(小蔡)回复于 2005-07-06 12:05:05 得分 0
就是codeangel的意思,思归说web.config也可以在子目录里面存在,那么一个站点里面可以有N个web.config而且分布在不同的目录里面。如是,则在每个分站点里面建立一个web.config,不过这种方法是不能保密的,^_^Top
6 楼saucer(思归)回复于 2005-07-06 12:23:05 得分 0
>>不过这种方法是不能保密的
跟谁保密?假如黑客进入了你的系统,你什么密都无法保了
如果你向你的分公司的人保密,那你应该设置每个子目录的安全设置,那么他们也不可能看到别的子目录里的东西
web.config虽然烦琐一点,但这几乎是静态的方法,不需要在其他地方加编码,假如在Application_BeginRequest里做(即使把数据从配置文件里一次性读出来然后缓存),那么每个请求都需要算一遍Top
7 楼renyu732(Sysinfo)回复于 2005-07-06 12:58:49 得分 8
推荐思归的web.config方法.
Top
8 楼yyne(一步一个脚印往上爬)回复于 2005-07-06 13:57:12 得分 2
嗯,跟高人学习来了~ 顺便帮楼主顶一下~Top
9 楼we2001lmch(追寻)回复于 2005-07-06 15:04:47 得分 2
学习一下Top
10 楼Seeko0(阿 枫(终点又回到起点,到现在我才发现))回复于 2005-07-06 15:15:16 得分 5
多看看.text设计代码,多公司网站并不代表一定要为每个公司建立网站,我认为建立一个网站,然后通过模块划分,给每个子公司一个相同的使用模块就可以了Top
11 楼clm0010(小蔡)回复于 2005-07-08 23:05:52 得分 0
结果:采用思归的办法,在总目录了子目录下都建立web.config,谢谢大家的帮助!Top




