如何有效地将值附加到引用表id?

时间:2016-11-10 21:52:54

标签: php mysql codeigniter enums

我的网站上有一个“产品”表。有product_id,图像和一堆信息,如制造商,健康,年龄等。当我开始处理我的项目时,我选择将所有内容保存为这样的ENUM:

manufacturer ENUM('manufacturer1', 'manufacturer2', 'manufacturer3', 'manufacturer4'),

然而,处理更多的东西我已经意识到这对我来说不是最好的方法。所以我决定创建参考表。对于制造商来说,它看起来像这样:

CREATE TABLE manufacturer(
    manufacturer_id  INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
    name VARCHAR(50) NOT NULL,
    PRIMARY KEY (manufacturer_id  ),
    UNIQUE INDEX name (name)
);

但在产品表中我现在有:

manufacturer_id INT(10),

问题是从参考表中分配值的最佳方法是什么。我正在使用CI框架,很容易在视图中显示产品。但是现在当我运行产品查询时,我得到“3”而不是“manufacturer3”。

我可以使用JOIN,但我会有7个JOIN。我创建了具有atises值的函数库。但是我必须保存该函数中的所有可能值,或者每次使用库时查询每个引用表。

我的意思是有很多关于为什么不使用ENUM的文章我得到了 - 我自己在项目中遇到了ENUM的问题。我不知道如何将这些参考ID转换为实际值(有效地,我不认为7 JOIN是一种很好的方法,特别是如果我必须经常这样做)

0 个答案:

没有答案