d*******n 发帖数: 109 | 1 军队序列最高长官是军长,军长手下可以有〉=1师长,师长手下〉=1旅长,以此类推。
但是我们不知道Hierrachy一共有几层,可以是3层,也可以是30层。数据库里还需要存
储每个人的年龄。
有一个办法是创建一个Table,没有PK,FK,有四个Column,
上级,发生序列,下级,年龄
这样可以从上级是什么职务,这个职务是同样职务中的第几个,下级职务来最终确认一
个人的年龄。
还有什么好方法,比如用recursive reference key (self reference key) 来设计这
个data model吗? 我自己测试,花了很多时间,但是没有做出来。
谢谢 |
s**********o 发帖数: 14359 | 2 一个TABLE肯定不是NORMALIZED的了,人员升级变动是很经常的,都在一个TABLE很困难
虽然职位本身有一个上下级关系,但是不一定是直属上下级,多数都是这样搞的。
ID 人名 年龄 职位
1 张三 20 营长
2 李四 30 团长
3 王二 35 旅长
4 赵五 40 师长
HIGHID LOWID RELATIONSHIP
4 3 直属上下级
3 2 直属上下级
2 1 直属上下级 |
d*******n 发帖数: 109 | 3 我这个数据库不需要名字信息的,也不需要考虑到职务升迁变动的可能性。
而且,query的时候是这样的
“请问军长手下第二序号的师长手下第三序号的旅长手下第一序号的团长的年龄是多少
?”
这样是不是难度增大了? |
s**********o 发帖数: 14359 | 4 什么叫第二序号,第三序号,你有一个默认的军长手下的师长是有序号的,
你的军队到底有多少序号,别跟红军似的今天一个三一五师明天一个二一
八师,每个军底下有多少师,每个师的号是什么都要有单独的TABLE,否则
没规律可循了,你的年龄没有人做ID,根本就没有实用价值。
【在 d*******n 的大作中提到】 : 我这个数据库不需要名字信息的,也不需要考虑到职务升迁变动的可能性。 : 而且,query的时候是这样的 : “请问军长手下第二序号的师长手下第三序号的旅长手下第一序号的团长的年龄是多少 : ?” : 这样是不是难度增大了?
|
d*******n 发帖数: 109 | 5 一个军长,但军长手下有〉=1师长,每个师长从他出现在花名册的顺序开始排序号,1
,2,3,以此类推。每一个上级有〉=1个直接下级,每一个下级只有一个直接上级,但
是在展开花名册之前,我们是不知道上级有几个直接下级,也不知道这个Hierarchy有
几层的,但是涉及数据库是要考虑到这个情况,不能设计好之后再改数据结构的。
按照我先前的设想是这样的:
ID(int, PK) 上级, 上级出现序号, 上级年龄, 下级
在树状的花名册里,我读取数据先走完最左边的数据
就是军长1,师长1....排长1,工兵1
读完工兵1后,如果排长1下有其他比如工兵2,我再读取工兵2,如果工兵2之下还有下
级比如民兵1,民兵2,民兵3等,我再依次读取民兵1,民兵2,民兵3。
这不是Normalized,但可以用,我想不出来,recursive foreign key之类的好的方法
来做。或是否有其他方法解决。 |
s**********o 发帖数: 14359 | 6 你这不是搞了个LIST么,跟数据库有什么关系,关系型数据库就是讲NORMALIZATION
NORMAL以后可以对付各种不同的QUERY,你这次问的是年龄,下次问的是性别怎么办,
大下次又问身高怎么办?拆了重新存啊,你这什么数据库啊
1
【在 d*******n 的大作中提到】 : 一个军长,但军长手下有〉=1师长,每个师长从他出现在花名册的顺序开始排序号,1 : ,2,3,以此类推。每一个上级有〉=1个直接下级,每一个下级只有一个直接上级,但 : 是在展开花名册之前,我们是不知道上级有几个直接下级,也不知道这个Hierarchy有 : 几层的,但是涉及数据库是要考虑到这个情况,不能设计好之后再改数据结构的。 : 按照我先前的设想是这样的: : ID(int, PK) 上级, 上级出现序号, 上级年龄, 下级 : 在树状的花名册里,我读取数据先走完最左边的数据 : 就是军长1,师长1....排长1,工兵1 : 读完工兵1后,如果排长1下有其他比如工兵2,我再读取工兵2,如果工兵2之下还有下 : 级比如民兵1,民兵2,民兵3等,我再依次读取民兵1,民兵2,民兵3。
|
d*******n 发帖数: 109 | 7 这个是不叫RDB,是想拿来处理XML的数据的,说了半天师长军长的,我还没有说清楚。 |
s**********o 发帖数: 14359 | 8 那你存在XML里不挺好吗,如果百万数据的会死慢
【在 d*******n 的大作中提到】 : 这个是不叫RDB,是想拿来处理XML的数据的,说了半天师长军长的,我还没有说清楚。
|
d*******n 发帖数: 109 | 9 项目大致是这样的:
从web service来的数据,是XML的格式,那么现在需要读取这个数据,用SQL把我们需
要的数据显示出来。所以就想是用一个Table还是用几个Table(RDB)来存储数据的问
题了,还有就是你说的Performance Tuning了,需要Developer决定用什么形式的Table
了。 |
d*****e 发帖数: 151 | 10 data model有很多现成的模板,可以套用的。 |