MySQL-多级筛选数据库表设计

发布于 2017-01-25 18:26:22 字数 150 浏览 1622 评论 1

我想做一个形如图所示的筛选菜单,我该如何设计我的表结构
形如图片的导航设计

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

虐人心 2017-09-13 06:00:18

感觉,这三类之间没有什么联系啊。
首先,需要把这三张表建立一下
theme: //主题
tid,name

season://季节
s_id,name

type //分类
t_id,name

product: //商品
p_id,name,....

type_relation //关系表
relation_id,theme_id,seasion_id,type_id,product_id

$type = array();
foreach($_POST as $v){//筛选三个分类的id
isset(array_key_exists('theme_id',$_POST)) ? type[]="theme_id = " .$_POST['theme_id'] : continue;
isset(array_key_exists('season_id',$_POST)) ? type[]="season_id = " .$_POST['season_id'] : continue;
isset(array_key_exists('type_id',$_POST)) ? type[]="type_id = " .$_POST['type_id'] : continue;
}

if (empty($type)) return false;
//拼装sql
$sql = "select * from product left join type_relation on p_id = product_id where " .implode(" OR ",$type);
//查询
$result = $db->query($sql);
//打印
var_dump($result);

这是我的看法,大致逻辑就是这样,不知道是不是你想要的,

---------------------------分隔符--------------------------------------

注意下上面的改动,把product表里原来的分类id给去掉了,然后放在一张新表里type_relation表里,在查询里,左连接,使用product_id和p_id来关联,然是OR的关系。。。

应该就符合你的需求了!

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文