看看就给分:数据库规划的小问题(100分)

  • 主题发起人 主题发起人 luckystar
  • 开始时间 开始时间
L

luckystar

Unregistered / Unconfirmed
GUEST, unregistred user!
看看就给分
我师兄用vb+access做了一个两层,现在我借用他的库,做个D5+interbase
的东东,遇到了一些问题:
库中有若干主表,象这样子的:
XingMing XingBie JiGuan ZuanYe
----------------------------------------------- .....
qlw 1 23 00912

性别,籍贯,专业等等都用代码表示,他说这都是国标代码

* 这样做给我带来了相当的麻烦,在做浏览时,必须用一个十分复杂的存储过
程,把主表和若干代码表组合起来,以便用户能够看的懂,另外,在客户端
编辑完数据,ApplyUpdate到服务器,因为我想把返回的数据在服务器端显
示出来,最简单的是在TdatasetProvider的OnUpdateData中写:
ClientDataset.data:=dataset.data;
由于返回的表用代码表示,如用上面的方法显示,会使DBA摸不着头脑.

* 我认为,代码表的作用仅仅体现在录入中,如显示字段列表供用户选择,而最
终写入主表的不应是代码.

以上见解当否,请各位大虾赐教,如果不对,请告知我的第一个问题如何解决,
多谢多谢!
 
用LookupField,LookupDBComboBox
 
如果数据两小(不超过1万条记录)的话,我认为全部用中文也可以
 
不必用存储过程,用控件就可以了。
 
写入主表的应该是代码,有很多优点
在另外一个表中建立代码与中文或其他信息的联系
这样,表小,存储查询量小,快
 
我的这个东西实际已经做出来了,除了上面说的在服务器端显示
更新数据不会做.我现在有一点不懂,主表建成这样:
xingming xingbie minzu jiguan xueli
---------------------------------------------------------
qlw 男 汉 湖北 大学

不是更方便?代码表的问题好办,另建一个表,把主表和代码表关联起来

还请各位赐教
 
实际上应该考虑数据库大小的问题,如果应用在十分大型的数据库上,一定要用
代码存贮,我同意liuchuanbo的观点。如果是十分大型的数据库,用汉字存储
运行效率将十分低下。当然,如果是小型库,效率不会太明显,用汉字也可以!
 
to luckystar:
建立数据库的原则,我认为只要数据有重(chong)用的情况,都应该采用分类代码。
好处是: 1减小数据录入储存工作量;2减小出错的机会(因为利用了数据库的参照完整性特点);3 对提高查询效率有好处(特别是多库联查)。
缺点:增加系统开发难度。
对于录入界面的设计,我是这样处理的:
1 在Tclentdataset的Fields中添加对应的Lookup字段用来显示输出。
2 建立一些小的Pickup界面,带维护,用来选出和维护代码。
 
其实代码表是有相当多的好处的,特别在做企业MIS开发时。而且一般代码都会是
一个表结构中,以一种树形结构来存储,这样做给今后的系统维护带来好处多多。
但是在开发时确实有些不方便。不过Delphi在处理这方面还是非常方便的。
如对数形代码体系感兴趣,请讲。
 
可否讲讲什么是树形结构?
 
是不是多层代码,例如 材料编号->材料名称代码-->材料名称
|
+> 材料规格
 
我一直是使用在主表中存代码,很好,
至于显示可以用视图,不用视图岂不对不起数据库设计者啦!

"数形代码体系感兴趣,请讲"
我正想用,可否给点好的建议,
或是讲讲你的做法,
我发现有比较的慢。
 
可以使用Infopower2000的wwwDBGRID控件。
下载地址:
<a href="http://www.net-wing.net/kangwei">http://www.net-wing.net/kangwei</a>
 
大家的意见都不错,但我觉得LUCKSTAR兄的问题根源在于:
他对关系型数据库的设计不太了解。
作为关系型数据库,表间关联很重要,主键,外键的使用都很有讲究。你的师兄
说的很好。
建议LUCKSTAR兄看一下这本书:
数据库理论 清华大学 杨冬青 译 作者是原贝尔实验室的博士,和CODD齐名
机械工业出版社 2000。1 定价 48。00
这本书是系统学习关系型数据库的好书。
 
做代码表
code contents
代码 内容

如姓名对照表、性别对照表,等等,
code 与你的信息表建立关联。
好吧,下面的自己动动手。
 
to 阿朱:
贝尔实验室的博士是一个还是两个?
我在图书馆找到一本书,俩博士写的,清华出的,不过是E文版
我的关系数据库知识仅限于教材,视图,主/外部关键字这些我懂,主表一动,从表如
何跟着动我也知,不知还欠缺哪些知识?

我的这个东西刚刚完成,但我很不满意,请看我的另一问题
http://www.gislab.ecnu.edu.cn/delphibbs/DispQ.asp?LID=226794
 
agree liuxianghui.
补充:虽然开发方面增加了一些东西,但对数据库本身而言,倒是降低了各种维护费用或支出。

to gben,
代码在逻辑上可能是树形结构的,但在数据库中存储时,按现有的二维表(数据库)来看,不可能按树形结构来存,只能是列表型的。
 
多人接受答案了。
 
后退
顶部