首页 新闻 会员 周边

问一个数据库设计方面的高级问题。

0
悬赏园豆:10 [已关闭问题] 关闭于 2010-02-09 11:24

我的数据库是这样设计的,先设计了一些基础信息表(比如说性别表,籍贯表,血型表等等),这些表都是单独的表。现在还要设计一张学生表,问题来了:

学生表里面的信息,要来自于这些信息表中,但是还要能够动态的添加与删除,也就是说比如我现在添加性别,那么在做学生信息时,就要能够有添加性别这一项,如果把这一项删除,那么在添加学生信息时,性别就没有了。

我搞的是asp.net程序,请问各位大侠,这样的需求,数据库应该怎么设计比较合理呢,先谢过了。

大家可以看看下图:

Joe_true的主页 Joe_true | 初学一级 | 园豆:98
提问于:2010-02-04 10:07
< >
分享
所有回答(5)
0

在表与表之间建立关联啊

veiki | 园豆:215 (菜鸟二级) | 2010-02-04 11:03
0

表冗余 性别这类的 完全没有必要单独成表

李里 | 园豆:210 (菜鸟二级) | 2010-02-04 11:29
0

1、这个东西要肯定你添加或者删除的栏目(像你说的性别之类的)是你事先有的吧,不是后来用户自己添加的栏目吧

2、你可以现在表中有10个字段,然后再另外的表维护这10个字段是否显示,用户填写的栏目就是你设置为显示的栏目,不显示填写的时候就不用出现了

3、或者高级一些的,你可能需要用户字可以自定义栏目,但是这些栏目1)可以定义规则,然后参与固定的几种运算2)没有规则,就是一些说明类的,就能显示一下,没有什么实际意义

Virus-BeautyCode | 园豆:1619 (小虾三级) | 2010-02-04 14:08
0

性别、血型这类表需要单独成表?没这个必要吧。

webaspx | 园豆:1973 (小虾三级) | 2010-02-04 15:08
0

基础信息表建议做成Dict字典表形式,参考结构

Id    TypeEnum   Value

1     0                A型
2     0                B型
3     1                男

在Student表里进行引用就可以了,这样既可以减少冗余,同时又保持结构的简洁,因为这里的信息是很少维护的,属于系统预置的

查尔斯 | 园豆:3832 (老鸟四级) | 2010-02-04 23:18
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册