我是mysql的新手,所以我可能不知道如何正确设置这样的东西。
基本上,我桌子上的每一排都是不同的食物。我有一些基本内容的专栏,比如描述。。。
但是,我有一个"成分"数组,以及数组中的"多少"数组。
基本上,在我这边,我可以进入ingredientsArray[0]howMuch[0]来显示成分及其含量。
所以,我想把这两个数组都保存在一个单元格中,作为一排食物。
我听说我可以序列化数组并保存它。但我需要它是可搜索的。
(而且,成分的数量没有固定的限制。所以我不喜欢每种成分都有一列,这就是我走阵列路线的原因)
编辑:还有一件事,如果这可能会有所帮助。。。howMuch永远不会是一个int 0 1 2 3 4 5 6 7 8 9 以外的任何东西
对此,最好的方法是什么?
我正在AS3中进行编程,并使用AMFPHP连接到Mysql
创建一个新的可能成分表。然后创建另一张表,将你的食物表和一堆有数量的食材连接起来。
YOUR_FOOD_TABLE
food_id (PK)
description
...
FOOD_INGREDIENTS
food_id (FK)
ingredient_id (FK)
quantity
INGREDIENTS
ingredient_id (PK)
ingredient_name
最好有一个配料表,其中包含一列(food_id),该列引用食物表中记录的id,以及用于配料名称和数量的列。
然后,您可以在配料表上搜索,并获得包含特定配料的所有食品的ID
序列化仍然可以进行文本搜索,但这里真正的解决方案是将成分分解到一个不同的表中,并将它们连接到一个单独的表中(包括数量)。
使用mysql
FIND_IN_SET
请在创建此查询之前转义数组值
$insert_qry = 'INSERT INTO `table` (`ingredients`,`howmuch`) VALUES ("'.implode(',',$ingredientsArray).'", "'.implode(',',$howMuch).'")';
$search_qry = 'SELECT * FROM `table` WHERE FIND_IN_SET("bread",`ingredients`);';
http://dev.mysql.com/doc/refman/5.0/en/string-functions.html#function_find-设置