用OO设计数据库结构之我解

时间:2005年09月24日 19:09  标签: 面向对象 数据库设计 原创技术

前段时间,dv的上水道曾在dv的web版发过一贴,地址:
http://bbs.dvbbs.net/dispbbs.asp?boardid=1&replyid=1864723&id=1028215&page=1&skin=0&Star=1
当时没怎么看明白,但昨天叶子这笨蛋说起一个多功能的系统中分类表不能放在一起时,偶就突然有了自己的一点理解,今天在看了一遍上水道的贴子,就感觉怎么好象和他想到一块了。呵呵,,,,

入正题

现有的系统,假设有下载、相册、文章功能,按照现有的一般性习惯,都会把那三个功能中需要用到的分类分表存放,例如
tb_DownSort、tb_AlbumSort、tb_ArticleSort
然后各表的结构都不尽相同。当然,我不会说这种方法不好。我现在只谈我用OO设计数据库结构的方法。

1、先建立一个分类表,也可以称为一个基本类,里面只有
SortID SortName SortType  .....[这里是怎么实现无限分类的扩展字段,基于各种分类方法不同,因此不列出]
这里的sorttype就是决定他是拥有哪种属性的了。

2、建立一个属性表,也可以称为分类这个基本类的扩展属性,但这里字段该怎么设计,尚未想好。

3、建立视图,通过基本类的SortType和属性表进行关联,以实现实例化

4、这样程序方面就可以通过直接查询视图,来获得具体某个分类的所有信息了。

注:这里为什么要在基本表里设置sorttype而不是在属性表通过sortid去指向呢?因为我这里是考虑属性是可以通用的,而不是单独定制的,因此结构也就有所不同。

相关文章:
4条评论(Comments) 订阅该Blog下的评论RSS
悠然  [2009年04月14日 09:31]
有一个办法,通过配置属性来生成表。
  [2005年09月24日 23:30]
视图的作用就是靠关联而把不同属性的类实例化,即如果有两个功能类,即有两个视图。

vi_DownSort
vi_ArticleSort
  [2005年09月24日 23:28]
bc,偶有说把会员组的放进去吗????

不过bbs的版块倒是可以考虑放进去。

偶之所有没有把第2步写出来,就是如何实现扩展属性,你如果以为是靠字段来实现那我根本无需要这样OO来设计,我做的要是靠值来实现。
叶子  [2005年09月24日 19:50]
不是不能在一起.

比如用户分类和bbs板块,cms板块分类等糅合在一个表
你是觉得整个操作是简单了还是复杂了呢???

为了少2个表=_=

确实可以通过扩展属性做到.可是bbs和cms等的.附属属性毕竟相差的太远了...
上视图...个人觉得有点....
发表评论
正在加载...
搜索更多
文章导读
最新评论
我的豆瓣秀
RSS订阅
抓虾
Rojo
google reader
netvibes
my yahoo
newsgator
bloglines
鲜果
哪吒
有道
QQ邮箱
九点