Database design 面向广告类网站的数据库管理系统设计

Database design 面向广告类网站的数据库管理系统设计,database-design,Database Design,我不知道如何根据以下要求设计dbms: 对于一个类似广告的网站,有很多分类 每个类别都有可选的子类别。每个子类别都可以有可选的子类别。。。等等 根据每个类别(用户已选择搜索),将有仅适用于此类别的搜索条件,例如: 如果用户选择了汽车类别,则会有以下搜索条件:品牌、型号、首次注册、燃油类型,但如果用户选择公寓类别,则会有以下搜索条件:2间卧室、3间卧室、私人、代理 . 我希望我解释得尽可能简单 table ad [ad_id, category_id, {other fields}] tabl

我不知道如何根据以下要求设计dbms:

对于一个类似广告的网站,有很多分类

每个类别都有可选的子类别。每个子类别都可以有可选的子类别。。。等等 根据每个类别(用户已选择搜索),将有仅适用于此类别的搜索条件,例如:

如果用户选择了汽车类别,则会有以下搜索条件:品牌、型号、首次注册、燃油类型,但如果用户选择公寓类别,则会有以下搜索条件:2间卧室、3间卧室、私人、代理 .

我希望我解释得尽可能简单

table ad  [ad_id, category_id, {other fields}]
table category [category_id, name, parent_category_id(default=0)]
任何类别都可以有一个父类别,因此您可以永远对其进行壳处理
每个广告都有一个起始类别,如果该类别有子类,那么就获得这些,如果他们有子类,那么就无限地获得这些。这意味着要处理分层数据,因此有许多模型可供选择,每个模型都有其局限性和优势

我建议在开始设计模式之前先阅读。对于我的项目,我使用了邻接列表的方法,因为它更容易理解,但是当你需要查询它时,一切都变得困难,所以嵌套的集合可能会更好


MySql似乎建议使用嵌套集

这是一个非常宽泛的、边缘到宽泛的有用问题。我知道听上去很痛苦,但你可能应该为初学者买一本关于数据库的书。这真的是最好的。