日期:2014-05-19  浏览次数:20512 次

向有丰富经验的高手请教数据库定义表及字段的一些相关问题.
最近接手一个从团体中来的项目asp.net(里面有不少东西我反而觉得影响了开发速度,比如webContentid,我觉得还是长了一点,没必要(至少在那些十个表内的项目中没必要),还有一些其它的问题,因为我一直是做web网站,我一般是认为用最少的代码去实现功能是最理想的(在需要长期的维护下我会考虑多点代码减少麻烦也好).


注:请大家把在实际开发中去应用并思考过这些问题的一些优点来说一下吧。


1\表名的定义方式?
tblName,tblContent等等,还是Username,Content?     我一般使用后者,请问前者有什么好处,一般在SQL企业管理器的视窗中,我会把系统表隐藏起来,所以在表里面,是看不到系统表的,不存在着混乱的感觉.


2\字段定义
使用AutoId,fdcName,fdiUserID     还是使用Id,UserName,Userid?       使用前者的fd是什么意思?(其中c和i代表字符型和数字型),但那样用真的有利于开发吗?

3\存储过程
名字使用SP开头,有何好处?谢谢。

4\,在三层架构开发中,有二个存储过程分别是:UserName(@UserId   int)和ContentID(@Id   int),你们会在逻辑层中定义二个类,还是定义一个类?打比方(写法有误请不要介意,只讨论方案):
    方法1、  
            Function   DataSet   ds(sp   string   ,id   int)       注:定义好
            然后有二个页面,a.aspx及b.aspx,
            //   a.aspx
            int   id=100;
            DataSet   a=ds( "Username ",id);
            //   b.aspx
            int   id=100;
            DataSet   a=ds( "Content ",id);
    方法2:
            Function   DataSet   UserName(id   int)       注:定义好
            Function   DataSet   Cotnent(id   int)       注:定义好
            然后有二个页面,a.aspx及b.aspx,
            //   a.aspx
            int   id=100;
            DataSet   a=UserName(id);
            //   b.aspx
            int   id=100;
            DataSet   a=Cotnent(id);
说说你选择那种方案,为什么?谢谢。


5、在上面所说的情况之下,如果有更多的存储过程只是读取表(比如有8个),没带任何参数,那你们是定义一个类如Function   DataSet   ds(变量)然后通过调用同一个类传过去不同的存储过程名字,还是为每一个存储过程定义一个类?
说说你们的看法,谢谢。


4\请列出一些在实际开发中有好处的一些做法和定义什么的,谢谢。



------解决方案--------------------
经验有一点,丰富经验没有

1\表名的定义方式?
项目(模块)名_表名
Area_Countries
Accounts_Users
Forums_Categories

2\字段定义
没有用前缀

3\存储过程
同表名
sp_Accounts_GetUserDetailsByID
sp_Forums_GetTopicsByPage

4\使用数据库基类解决
------解决方案--------------------
UP
------解决方案--------------------
友情帮顶
------解决方案--------------------
一句话:其实都可以,没有绝对的标准,最重要的前后保持一致,风格统一。
如果你是个人开发,由你自己定规范;如果是团队开发,按照公司的规范做。