我有一个数据库,它接受用户提交的数据,我想将这些条目分组到大约 10 个类别中的一个或多个类别中。
例如,您将您的条目添加到我的网站,说这一切都与您的业务(汽车代客服务)有关,我为您提供机会将您的条目分类为任意 10 个固定类别(汽车、移动服务等) ,因此,如果用户在“汽车”或“移动服务”类别下搜索企业,则会从查询中返回您的企业。
因此,正如我从这里获取的大部分答案一样,为了实现这一目标,我的数据库包含三个表(结构如下),一个用于您的业务条目,一个列出设置的类别,以及一个我添加到的关系表前两个表中的唯一键。
CREATE TABLE `business` (
`bus_id` INT NOT NULL AUTO_INCREMENT,
`bus_name` VARCHAR(50) NOT NULL,
`bus_dscpn` TEXT NOT NULL,
`bus_url` VARCHAR(255) NOT NULL,
PRIMARY KEY (`bus_id`)
)
CREATE TABLE `categories` (
`category_id` INT NOT NULL AUTO_INCREMENT,
`category_name` VARCHAR(20) NOT NULL,
PRIMARY KEY (`category_id`)
)
CREATE TABLE `tbl_works_categories` (
`bus_id` INT NOT NULL,
`category_id` INT NOT NULL
)
我一生都无法弄清楚的是,当您从我用 PHP 处理的表单中选择您希望与您的业务关联的类别时,如何在数据库中实际关联它们!
要获取包含您可以执行的所有类别的业务数据,
SELECT bus.*, cat.category_name FROM business bus
JOIN tbl_works_categories twc USING (bus_id)
JOIN categories cat USING (category_id)
WHERE bus.bus_id = ?
要从类别名称检索业务数据,只需切换 WHERE 参数
SELECT bus.*, cat.category_name FROM business bus
JOIN tbl_works_categories twc USING (bus_id)
JOIN categories cat USING (category_id)
WHERE cat.category_name = ?
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)