0

我正在尝试创建一个用于存储汽车信息的数据库。

汽车可以分为新的、二手的或出租的。每种类型的汽车类别具有不同的属性,因为新车具有不同的特征,不需要使用,并且使用和租赁类别的情况相同。将来可以使用应用程序管理端表单管理器为这 3 个类别添加、删除属性。

目前我将这些存储在 1 个产品表中,其中包含这 3 个类别所需的所有属性。

PRODUCT(id,title,description,model,kilometer,enginsize,conditions,.....,.,...)

由于建议从管理员控制中管理每个类别的表单,因此我正在寻找一个新的可扩展数据库。

current development:

all common attributes in Products

PRODUCT(pid,title,description,...)

CATEGORY(cid,cname) new,used,rent

form_field(formfield_id,name,type)  to store all attributes that are not common

form_field_category(formfield_id,cid) to store category associated attributes

form_post_data(post_id,pid,formfield_id,value) to store submitted data

有什么建议么。

4

2 回答 2

1

据我了解,您有 2 类属性:常见的和特定于类别的。

所以做类似的事情:

PRODUCT(pid,title,description,...)

CATEGORY(cid,cname) new,used,rent

additional_info_category(aid, cid, name)

adition_info_data (adataid, aid, pid, data)

应该足够了,您只需要加载所有产品信息以及与类别相关的附加信息中的字段。

如果它们是特定于类别的,添加新字段应该没有问题,但我的问题是:您确定不需要添加公共字段吗?

于 2012-12-17T11:59:05.010 回答
0

您需要的是一个实体-属性-值模型

如果表中的大多数值form_post_data都是文本,只需将其设为varchar字段即可。但是,如果您要存储数值、选项和其他类型(您可能想要过滤的内容),请查看这篇文章EAV 建模的替代方法

如果您有可以有多个值的属性,请查看这篇后续文章EAV 多值字段

于 2012-12-30T18:52:22.487 回答