在mysql中的表中存储逗号分隔的外键值(得到1452错误)

use*_*916 1 mysql

我有两个表品牌和供应商.

品牌表如下(brand_id为VARCHAR):

brand_id      brand_name
---------    --------------
01               KFC
02               MCD
03               Cream stone
Run Code Online (Sandbox Code Playgroud)

我创建了另一个表brand供应商,它将brand_id作为外键并带有声明:

CREATE TABLE vendor(vendor_id VARCHAR(20), 
        name VARCHAR(50), 
        brand_id VARCHAR(10), 
        PRIMARY KEY (vendor_id), 
        FOREIGN KEY(brand_id) REFERENCES vendor_brand(brand_id));
Run Code Online (Sandbox Code Playgroud)

现在我的要求是我想在供应商表中存储逗号分隔的brand_id :

vendor_id         name                  brand_id
---------    --------------          ---------------
1               Hi Bakers               01, 02
2               Test Confectioners      02
3               Cream Parlour           01, 02, 03
Run Code Online (Sandbox Code Playgroud)

我在插入时遇到错误#1452.如何使逗号分隔值?

jue*_*n d 6

这不适用于在列中存储多个外键.即使它不是钥匙,你也绝对不应该这样做.从不,永远,永远不会在一列中存储多个值!这只会让您对未来的选择感到头痛,而且性能确实很慢.

更好的方法是使用另一个新表

vendor_brands
-------------
vendor_id
brand_id
Run Code Online (Sandbox Code Playgroud)