求教:在数据库表之上再进行抽象

rockhard 2003-02-22 11:36:02
举例说明我要问的问题吧
下面是我公司一个实施系统的实际例子,要对各种涉及到的资源进行管理。

表:轮船
=====
Resouce_id 资源标识
BoatNumber 船班号
linesID 航线(轮船公司)ID
Res_type_id 类型(型号)
Address_id 所属城市(开始)
TargetCityID 目的城市代码
DepTime 离开时间
ArrTime 到达时间
DaysConsuming 经历天数
WeekDay 航期
TicketRankList 船票等级
Direction 方向
priority 优先级别


表:飞机
==========
Resouce_id 资源标识
BoatNumber 船班号
linesID 航线(轮船公司)ID
Res_type_id 类型(型号)
Address_id 所属城市(开始)
TargetCityID 目的城市代码
DepTime 离开时间
ArrTime 到达时间
DaysConsuming 经历天数
WeekDay 航期
TicketRankList 船票等级
Direction 方向
priority 优先级别


表:旅游景点
==============
Resouce_id 资源标识
name 名称
Res_type_id 类型
BriefCode 简单代码
Description 描述
TimeConsuming 游览耗时
Address_id 所属城市
homepage 主页
Postcode 邮政编码
ByName 联系人姓名
ByPhone 联系人电话
ByAddress 联系人地址
priority 优先级别

还有其它的没列出来。很多。

从上面可以看出,如果在实际中出现了一种在设计时没有考虑到的资源,那么今后就要在数据库中增加一个表,用来处理此类资源,同时会引起程序在好多方面的修改,比如成本核算等,因此,项目组长就希望能能够将上面的问题抽象化,用一个数据表来保存上面的表结构(如何设计这个表合理?),今后对该数据表插入一条记录就能增加所需的资源。同时要考虑到如何保存各个资源的实际数据。
这里还有一个问题就是,上面表中的某些属性字段,如地址,本身就是从另外一个表里面读取的,如果把它抽象化了,这个问题怎么解决?

我想问的问题不知说清楚了没有?

分不够另开帖。
...全文
64 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wmajia 2003-03-08
  • 打赏
  • 举报
回复
那样子编程几乎不可能,得不偿失
rockhard 2003-03-08
  • 打赏
  • 举报
回复
UP
pengdali 2003-02-22
  • 打赏
  • 举报
回复
表:轮船
=====
Resouce_id 资源标识
BoatNumber 船班号
linesID 航线(轮船公司)ID
Res_type_id 类型(型号)
Address_id 所属城市(开始)
TargetCityID 目的城市代码
DepTime 离开时间
ArrTime 到达时间
DaysConsuming 经历天数
WeekDay 航期
TicketRankList 船票等级
Direction 方向
priority 优先级别


表:飞机
==========
Resouce_id 资源标识
BoatNumber 船班号
linesID 航线(轮船公司)ID
Res_type_id 类型(型号)
Address_id 所属城市(开始)
TargetCityID 目的城市代码
DepTime 离开时间
ArrTime 到达时间
DaysConsuming 经历天数
WeekDay 航期
TicketRankList 船票等级
Direction 方向
priority 优先级别
--------------------------------可以:
表:交通
=====
Resouce_id 资源标识
flag 标志 -----(它为1表示飞机为2表示船为3表示汽车....)
BoatNumber 班号
linesID 航线ID
Res_type_id 类型(型号)
Address_id 所属城市(开始)
TargetCityID 目的城市代码
DepTime 离开时间
ArrTime 到达时间
DaysConsuming 经历天数
WeekDay 航期
TicketRankList 等级
Direction 方向
priority 优先级别
nik_Amis 2003-02-22
  • 打赏
  • 举报
回复
up
rockhard 2003-02-22
  • 打赏
  • 举报
回复
请高手发表其它看法。

up
rockhard 2003-02-22
  • 打赏
  • 举报
回复
谢谢楼上
Lastdrop 2003-02-22
  • 打赏
  • 举报
回复
1. 因为你的资源类型不同,总会有自己一些特殊的属性,所以我觉得你不需要对资源的表结构进行抽象,或者说你不需要将每种资源的所有属性都存在你的抽象表中,可以采用类似编程的函数地址的方法,比如你关心的是如何利用对你的各个资源进行成本核算,那么你可以设计这样一个表
res_name 资源名称
res_table 该资源所用的数据表名
cost_func 对该资源进行成本核算的数据库函数

那么你的应用程序只要将表中的所有资源的成本核算函数通过动态SQL执行一遍就行了。

2.第二个问题,可以通过设立一个公共属性表,比如地址等等,其他表只要存储相关的代号等就可以了。

22,209

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧