我即将开始开发一个分类Web应用程序。但我面临一些困难 在构建数据库设计时:
用户可以在不同类型的预先存在的类别(如车辆,房地产,计算机,教育等)下发布广告。但是每个类别都有其特定的字段/属性以及一些常见的字段/属性。
我的困难就像填写广告后一样,对于Bike来说,我将常用的i / p值保存到我的advertisement_t表中(如下所示)。 但是我将在哪里存储特定于自行车的其他字段值:自行车制造,自行车模型,自行车年等?
同样,如果用户想要发布House(租金)的广告,我可以将常用的i / p值保存到我的advertisement_t表中。 但是我在哪里可以存储特定于House For Rent的其他字段值:总面积(sq),No of Rooms等等,以及我将如何映射。
我的表格如下:
category_id
------------
(catId, parentCatId, cat_title, cat_desc)
advertisement_t
----------------
(adId, catId, userId, ad_title, ad_desc, photoId, postDate, statusId, price, ad_address, adValidFrom, adValidTo, adIsDeleted)
Photo_t
--------
(photoId, primary_photo, sec_photo1, sec_photo_2, sec_photo_3)
user_t
-------
(userId, username, password, email, activationkey, isvalidated, joinedDate, activatedDate, statusId)
我不知道其他分类网站(如olx,freeadds)如何在其数据库中维护(保持和显示)他们发布的广告数据。
如果有任何想法,请帮助。
提前致谢。
答案 0 :(得分:0)
我通常喜欢将这些数据分为2组(1)可搜索数据,这些数据将保存在某些列/映射到列中,以及(2)以json_encoded格式保存在文本列中的垃圾数据(我称之为additional_info)。 / p>
对于可搜索的列,您可以添加另一个表category_values表,该表具有 (category_id,category_value,ad_id)
同样,如果您的数据库预计会因类型类型经常重复而变大,您可以将category_values表分解为两个 (value_id,Category_id,category_value)和(value_id,ad_id)。这会导致更多的连接,我不相信你的情况。
答案 1 :(得分:0)
我做了一件接近这一次的事情。
我可以看到两个选项: 你不应该做的事情 - 为所需的货物(房屋,汽车,自行车......)实施大量的表格,这不是一个好主意,因为工作永远不会结束,也不会是可扩展的。
我的建议:
再添加3个表:
(CFid,标题)
(catId,CFid)
(id,adId,CFid,value)
你可以通过这种方式找到2个问题。建立一个不太好的“关系圈”,但如果认真完成,就可以完成工作。并且必须将costum字段的DataType减少为文本/数字以使其变得简单。将它应用于单选按钮或组合框会有麻烦。
祝你好运, 劳尔