我有两个表,我正在尝试进行输入,用户可以在其中搜索一个类别,例如比萨饼,数据库将找到该类别中的所有餐馆。我最初的想法是让表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/