如何实现运行期时自定义属性

qufo 2008-05-07 11:50:48
有好些web程序,可以在运行期设计一些属性。比如一个web网店程序,有如下功能。

一,定义商品分类(好实现,用一个表记录商品分类即可)
二,针对不同的商品分类(前面提到的),可以自定义属性和属性类型(?)

比如说,一个商品类别是电脑,其中的特殊属性有CPU型号,内存大小,笔记本/台式机等,另一个商品类型是手机,其中的特殊属性有 手机生产厂家,是否彩屏,是否支持MP3播放等。电脑类别中不需要是否支持彩屏和Mp3,手机中也不需要是否笔记本/台式机。

所以,web程序定义可以自己为这些类别(电脑/手机)增加或修改属性,并且定义属性的表现方式,如直接填入值(TextBox),或是下拉选单(Combox),如果是 Combox还可以定义Combox的值列表。

一般我们将对象的属性映射为二维表中的列,可是,这种特殊属性是我们进行数据库设计时不确定的,由用户自已增加的,如何体现在数据库,对其进行维护呢?
...全文
139 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
blazingfire 2008-05-07
  • 打赏
  • 举报
回复
属性代号<==>属性值
僵哥 2008-05-07
  • 打赏
  • 举报
回复
TypeClassTable
TypeClass|TypeName|Remark


PropInfoTable
TypeClass|Property|Remark

PropDataTable
Stock|Property|Value
etomahawk 2008-05-07
  • 打赏
  • 举报
回复
属性表:PropertyInfo(PropertyID PropertyName)
属性值表:PropertyValue(PropertyID, PropertyValue)
产品表:Products(ProductsID, PropertyID)

Products.PropertyID == PropertyValue.PropertyID == PropertyInfo.PropertyID

三张表关联起来不就可以了。不太懂数据库,但觉的不难。
僵哥 2008-05-07
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 qufo 的回复:]
引用 3 楼 suiyunonghen 的回复:
不明白,楼主说的运行期信息是个什么样的意思了。如果是Delphi中对象的信息的话,可以使用
RTTI来得到


不是指delphi中对象,而是自己在运行期定义一个原来没有的属性。比如,一个computer对象中原来没有owner的,现在要定义一个这样的属性。
[/Quote]
XML
qufo 2008-05-07
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 suiyunonghen 的回复:]
不明白,楼主说的运行期信息是个什么样的意思了。如果是Delphi中对象的信息的话,可以使用
RTTI来得到
[/Quote]

不是指delphi中对象,而是自己在运行期定义一个原来没有的属性。比如,一个computer对象中原来没有owner的,现在要定义一个这样的属性。
不得闲 2008-05-07
  • 打赏
  • 举报
回复
不明白,楼主说的运行期信息是个什么样的意思了。如果是Delphi中对象的信息的话,可以使用
RTTI来得到

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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