Asp.net Webform 从项目的数据库设计说起,什么是一个好的数据库设计。

1.一些废话

2.公司项目的DB设计

3.我的看法

4.小结 

一些废话,与我的一点想法

在我的老家的软件公司也有一段时间了,毕竟是小城市的软件公司。公司的开发环境,只能用四个字来形容。非常的差!由于我是新到公司的人,感觉老员工在我提出他们设计上的问题时候,总是被群起而攻之。我的想法与设计,是否正确,请各位看官读完了全文以后,能给我的设计与公司现有的设计,一个评分。留下您的回复,格式如下(公司设计:100分,楼主设计:80分)。楼主,要用你们的回复,给我们项目经理一些震撼,不过是在我辞职的时候。呵呵,我辞职的那天,会把这篇博客给项目经理看的。别的我可以忍,但是设计、代码我一步不让。之前,在博客园看了一篇文章,大体上是说,不要觉得别人的代码不行,自己的多么牛X,小菜在此说,我并没有这个意思,只是,在技术上,一是一二是二,还比较容易分清楚的,所以希望大家给我说说,这个设计到底怎么样。

公司项目的DB设计

首先,这是一个小项目,短信群发。两种运维方式,一、购买公司的找好,为购买的企业或个人创建一个二级管理员账号,此账号可以添加该账号下的联系人,常用语,陪着信息等。此账号再创建发送人员账号,发送人员用联系人,常用语等基础设置,群发短信。二、把整个系统卖个购买者,他们自己去买通信商的号码,来群发短信。软件的设计,就是有一个超级管理员,来管理二级管理员,二级管理员管理自己对应的发送员。

下面重点的设计是DB,公司的设计如下:

Users表存储超级管理员与二级管理员与发送员的登陆账号等,之后的一些表是我与公司最有争议的地方。公司的设计是,每次新建一个二级管理员,数据库就新建9张表,9张表存储二级管理员的一些信息,9张表如下,配置信息(配置发送员可用哪些功能),联系人表,常用短语表,联系人分组表,常用短语分组表等。一共9张表,那么小菜想的很简单,如果用1000个用户购买此账号发短信,那么系统便创建出了9000张表,sqlserver 9000张表,我不知道是什么概念。小菜的解决办法,把每个二级管理员的9张表,放在统一9张表里面,加上一个字段,二级管理员的PKey(二级管理员,一个企业只有一个),那么便每次登陆的时候,判断登陆角色,取得Pkey所需要的,配置数据,联系人,发送人,常用语等都可以轻松的得到,不必每次还要拼表名。第二,其中配置表里面有5项需呀配置的信息,公司的设计是这个表两个字段Type(配置信息的主键)YesorNo(配置的值),然后每次新建一个表,便是5条信息。小菜的设计,纵表变成横表,一条信息,主键,后面5个配置的值。

小菜的想法

我不知道,为什么公司的人员总是,听不进我的建议呢?我的设计有问题嘛?公司的老人,是这么说的,说放到一个表里面,数据量太大!那么,1000个公司,每个公司500个联系人,联系人表只有50万条,加上主键索引,我想问问这怎么就数据量大了?小组长说,这样是为了方便管理。小菜想问,放到一张表里面就不方便管理了?(公司的5个开发人员,只有我和新去的同事会用存储过程,其他的都是把数据用sql取出来,在C#中写IF ELSE,视图都不用的。)我们搞程序,难道只是实现了功能,就什么也不追求了吗?这个数据库的设计,各位看官给评评理。

小结

小菜,的确是刚毕业两年,但是小菜干狂妄的说,我比一些干了很多年的程序员要有脑子,我不是个工具!还是那句话,程序的事,我寸步不让!希望各位看官,支持小菜的,反对小菜的,能留下您的评分!标准如下:

公司设计:{0}分,楼主设计:{1}分

posted @ 2013-04-05 22:30  E=mc²  阅读(3533)  评论(52编辑  收藏  举报