php - Mysql关系型数据库分类

标签 php mysql

我有两个表,我正在尝试进行输入,用户可以在其中搜索一个类别,例如比萨饼,数据库将找到该类别中的所有餐馆。我最初的想法是让表category中的category字段的id为主键匹配到restaurant表category字段。但是我遇到的问题是只限制一家餐厅。什么是我要问的最佳配置。

餐厅餐 table

+--------------+-------------+------+-----+---------+-------+
| Field        | Type        | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| idRestaurant | int(11)     | NO   | PRI | NULL    |       |
| Name         | varchar(45) | YES  |     | NULL    |       |
| Password     | varchar(45) | YES  |     | NULL    |       |
| Email        | varchar(45) | YES  |     | NULL    |       |
| Number       | varchar(45) | YES  |     | NULL    |       |
+--------------+-------------+------+-----+---------+-------+

类别表

+--------------+-------------+------+-----+---------+-------+
| Field        | Type        | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| idCategories | int(11)     | NO   | PRI | NULL    |       |
| Category     | varchar(45) | YES  |     | NULL    |       |
+--------------+-------------+------+-----+---------+-------+

最佳答案

您正在寻找一个联结表作为 restaurant_categories 它将维护一个餐厅的关系,使其具有多个类别

餐厅类别

+--------------+-------------+------+-----+---------+-------+
| Field        | Type        | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| id           | int(11)     | NO   | PRI | NULL    |       |
| idCategories | int(11)     | NO   |     | NULL    |       |
| idRestaurant | int(11)     | NO   |     | NULL    |       |
+--------------+-------------+------+-----+---------+-------+

通过这种方式,您可以将多个类别分配给餐厅,并且对于搜索,您可以在表格之间使用简单的连接

select distinct r.* from Restaurants  r
join restaurant_categories rc on(r.idRestaurant = rc.idRestaurant )
join Categories c on (c.idCategories =rc.idCategories )
where c.Category ='pizza'

关于php - Mysql关系型数据库分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23947751/

相关文章:

php - MySql - 如何使用分组依据计算查询的计数(*)?

mysql - 在 Play 框架中使用 Ebean 进行映射

javascript - Onclick事件无法传入mysql

php - 分页 上一个 - 下一个增量

javascript - 附加的克隆表单刷新页面但不应该

php - 如何修剪 $_SERVER ['HTTP_REFERER' ]

php - PHP/MySQL 中的更新查询失败,错误代码 1064,SQLState 42000

php - 连续显示 PHP 输出?

php - 如何从 MySQL 结果中回显 PHP 变量

mysql - docker-compose 应用程序和数据库之间的链接