有好些web程序,可以在运行期设计一些属性。比如一个web网店程序,有如下功能。一,定义商品分类(好实现,用一个表记录商品分类即可)
二,针对不同的商品分类(前面提到的),可以自定义属性和属性类型(?)比如说,一个商品类别是电脑,其中的特殊属性有CPU型号,内存大小,笔记本/台式机等,另一个商品类型是手机,其中的特殊属性有 手机生产厂家,是否彩屏,是否支持MP3播放等。电脑类别中不需要是否支持彩屏和Mp3,手机中也不需要是否笔记本/台式机。所以,web程序定义可以自己为这些类别(电脑/手机)增加或修改属性,并且定义属性的表现方式,如直接填入值(TextBox),或是下拉选单(Combox),如果是 Combox还可以定义Combox的值列表。一般我们将对象的属性映射为二维表中的列,可是,这种特殊属性是我们进行数据库设计时不确定的,由用户自已增加的,如何体现在数据库,对其进行维护呢?

解决方案 »

  1.   

    TypeClassTable
    TypeClass|TypeName|Re
    PropInfoTable
    TypeClass|Property|RePropDataTable
    Stock|Property|Value
      

  2.   

    不明白,楼主说的运行期信息是个什么样的意思了。如果是Delphi中对象的信息的话,可以使用
    RTTI来得到
      

  3.   


    不是指delphi中对象,而是自己在运行期定义一个原来没有的属性。比如,一个computer对象中原来没有owner的,现在要定义一个这样的属性。
      

  4.   

    属性表:PropertyInfo(PropertyID  PropertyName)
    属性值表:PropertyValue(PropertyID, PropertyValue)
    产品表:Products(ProductsID, PropertyID)Products.PropertyID  == PropertyValue.PropertyID == PropertyInfo.PropertyID三张表关联起来不就可以了。不太懂数据库,但觉的不难。