Mysql 一个表中的多个外键引用另一个表中的不同列

Mysql 一个表中的多个外键引用另一个表中的不同列,mysql,Mysql,我有两张桌子 表1:客户 | id | name | item_name | item_type | | -- | ---- | --------------------------- | --------------------------- | | 1 | john | fk->items.name or items.id? | fk->items.type or items.id? |

我有两张桌子

表1:客户

| id | name | item_name                   | item_type                   |
| -- | ---- | --------------------------- | --------------------------- |
| 1  | john | fk->items.name or items.id? | fk->items.type or items.id? |          
表2:项目

| id | name | type      |
| -- | ---- | --------- |
| 1  | sink | utilities |          

如何从
items
表中获取
customers.item\u name
customers.item\u type
中的值?我知道我可以使用外键,但我不知道应该引用哪些列来创建外键。我怎么用php语句来称呼它们呢?

我相信您正在寻找这样的东西:

SELECT c.`id` as `customer_id`, c.`name` as `customer_name`,
       i.`name` as `item_name`, i.`type` as `item_type`
  FROM `customers` c INNER JOIN `items` i ON c.`item_name` = i.`name`

FK通常是另一个表的主键。所以item_id。除非类型根据客户的不同而不同,否则您通常不会在客户中存储item_类型,在这种情况下,您通常不会在items中存储item_类型(除非您希望在客户中未指定的实例中使用默认item_类型),明白了!非常感谢。那么,如果我只在客户表中存储
items.id
,我该如何显示
items.name
items.type的值呢?在这一点上,与任何基础、介绍性书籍或教程在一起5分钟都是有用的,如果我不清楚的话,很抱歉。我没有要求任何代码,只是要求一个快速的建议。我有疑问,你澄清了。不管怎样,我原来的问题现在解决了。但愿我能把你的评论作为答案。再次感谢!不要在customer中存储item_名称和item_类型-您可能会得到与有效item_类型无关的有效item_名称。只需存储项目名称,即可在查询时丰富类型。我会在连接表中存储item_id而不是item_name,而不是客户(即客户可以有许多项),我认为这会增加OP的混淆