怎么看ipad的系统版本:数据库建设问题?

来源:百度文库 编辑:中科新闻网 时间:2024/05/04 18:49:38
我准备在商品表中加入 折扣率. 我是直接加在里面还是分离出来,做成一个折扣表 然后再在商品表中加入 折扣ID ?
能给我讲讲,在设计过程中 什么时候应该分离出来,什么时候应该保留在里面吗?

谢谢各位

我觉得这要看整个库的数据多少(商品记录数)以及前台的使用方式而定。

如果你的商品记录数不是很多(100条以内),而且折扣率也不经常修改,那可以考虑把商品表中加入一个Decmial的字段,直接把折扣写在一张表里就可以了,一幕了然,比较好调试。

不过我认为,比较标准的做法还是单独建一个表,用于单独存放商品的折扣率,这样当折扣率发生变化时比较便于维护,同时在Sql查询语句中也尽可能的避免出现“select * from XXX where zhekou='(一个数字)'”的情况,毕竟,无论是那种程序语言,都存在数字与字符串转换的问题,尤其是十进制的小数,如果只用Integer的ID出错的可能性就要小很多。

另外再说两句,不知你的商品表都包括那些字段,如果是我,我会把商品名称、规格、产品说明、生产商等文本形式的且不会经常变动的字段放在一张表中,把商品单价(原价)、库存数量、折扣率ID等数字格式的且经常变动的字段放在一张表中,两张表用商品ID作为主键关联起来,这样在书写Sql查询语句时会清楚一些。(在命名数据表字段名是最好使用英语或英语的缩写,最好不要使用拼音,更不要使用中文)

其实总的来说,想这种小型的进销存数据库无论采用哪种数据表结构,对于后期维护和查询效率都不会有什么明显的影响,可能使用尽可能少的数据表更便于维护。但我认为问题的关键在于,要养成一个良好的数据库设计和编程习惯。你可以翻一翻有关数据库结构的书,尤其是SqlServer的外版书,大都是主张用较多的表格,每个表格尽可能少而明确的字段,之间用ID来关联。个人认为这样可以为将来设计比较复杂的数据库打下良好的思维基础。

个人的一些经验,仅供参考。

数据库一般有许多表组成,例如学校建一个数据库,可以建一张学生表(包括学生姓名、年龄、学号、班级、出生年月日)、一张教师表(包括教师姓名、年龄、授课班级、授课门类、)、一张成绩表(包括学生学号、以及各科成绩)等。这些都是数据库中的文件储存方式,尽量要做到一个表里的各个项要有紧密联系,并且属性相同,如果不能满足这个条件就要在建一张表(建成的表的冗余度有4个等级)。为了满足用户的查询需要,还要做若干张视图,比如,可以做一个视图他的项有学生姓名、年龄、各科成绩、以及各科授课教师等,我们也可以根据已有项导出新项,给用户以使用 简单为目的,例如,视图可以加一项平均成绩,我们给每一个视图都加上不同的权限、角色,提供给不同的人查询,以保护数据库的安全。但是一个视图中如果有太多的表、太多的关联项会影响数据库的查询效率。对于较大的数据库(比如银行的数据库)尽量提高效率。最后通过网页或编写的应用软件显示给用户

没必要分离出来,就直接加在里面就可以了。这样会比较方便。