网站的数据库与MVC架构,请有经验的高手解答

第一个问题:数据库的设计一般遵循第三范式,但是有时候会出现多对多的关系,怎么处理比较好?两个表之间有外键,但是有时候级联删除会破坏一些我想保留的数据,不级联删除的话数据的一致性又要如何保持?
第二个问题:MVC架构中,我往往在view层直接写方法取数据库的数据,因为有些操作感觉很难封装到DAO类中去,具体项目中是怎么操作的?
就拿一个学生管理系统来说吧,一般就有这么几个表:学生信息、老师信息、课程信息,为了把这几个表联系起来那么就需要再多两张表,一张是老师能教什么课,一张是学生选了什么课。这样为了保证操作,我至少需要5个界面。但是这只是一个小案例,当表很多,关系很复杂的时候,为了维护数据的一致性需要的界面就非常多了,有更好的方法吗?
view用来显示的,但是比如我想查询一个表或者多个表中的一些字段而已,这样的查询感觉不好写在controller里面,怎么办

第1个回答  2013-07-18
第一个问题:多对多关系需要用第三张表来联系起来

第二个问题: 在MVC中最后不要把逻辑和数据处理最后不要写在View中,一般写在控制器中,要不然维护起来是要命的,View用来展示就足够了追问

追问写不下,补充到原来的问题里面了

追答

我还是回答第二个问题把,第一个问题不好说,书上有详细的解释。SQL Server 2008宝典就有

在MVC里 Controler里查询出数据,用实体存起来再存在ViewBag 或viewdate里, 页面在获取ViewBag 或viewdate数据就行了
如果是多个表的某些字段,你可以根据需要的字段建一个实体类

本回答被网友采纳
第2个回答  2013-07-18
你那第一个问题可以另外建一个表 再通过这张表于这两张表建立关系 不就可以了吗
一般在项目中都会封装一些常用的方法 直接在Dao中调用 也有一些特殊的就在Dao中写咯追问

这我也知道。。。你做过没有?能详细点说吗?

第3个回答  2013-07-19
用 动软代码生成器可以直接生成

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网