【发布时间】:2021-12-08 10:12:05
【问题描述】:
所以我建立的网站有不同类型的帖子,当用户发布表单时,表单是基于他们选择的类别,如果他们选择汽车,它会询问建造年份、里程、门,如果他们点击书籍,它会询问作者,书籍损坏等......
现在,当涉及到数据库架构时,我试图思考如何保存不同的字段,因为我不想创建一个名为 mileage 的列,并且当用户选择书籍时它将为空,因为我认为那是一个糟糕的设计,所以我做了这样的:
| ad_title | ad_price | ad_body |
|---|---|---|
| car | 10028 | 2015, 999km, 4+ |
| book | 212 | James, no damage |
如您所见,我将根据类别更改的字段保存为$ad_body
$ad_body = implode(',', $_POST['body']);
然后当我想显示它时 我只是说
$ad_body = explode(',',get_post($id);,'ad_body'));
echo $ad_body['1'];
这似乎是一种不错的方法,但现在我在构建搜索页面时遇到了问题,我根据适用相同规则的类别更改搜索表单,但如何搜索里程或书籍作者等。 . 因为它们在单列中,这告诉我我的数据库架构构建不佳,我需要帮助我如何更改它,以便在能够搜索这些特定值的同时仍然能够保存不同类型的帖子。
【问题讨论】:
-
一个建议是使用Entity–attribute–value model 来存储您的汽车和书籍特征。该模型可以扩展到其他待售物品。
-
@GilbertLeBlanc 这是一个有趣的方法,我一定会多研究一下。感谢您提供信息,祝您早日愉快。
标签: php mysql database-design