Php 如何在mysql单元中存储数据列表(如数组)?(但仍然可以搜索)
我是mysql的新手,所以我可能只是不知道如何正确地设置这样的东西 基本上,我桌子上的每一排都是不同的食物。我有一些基本的专栏,比如描述 但是,我有一个“配料”数组和一个数组中的“多少”数组 基本上,在我这方面,我可以通过Radientsarray[0]显示多少[0]成分以及其中的多少成分 所以,我想把这两个数组都保存在一个单元格中,作为食物行 我听说我可以序列化数组并保存它。但我需要它是可搜索的 (另外,没有对配料数量的限制。所以我不喜欢每个配料都有一列,这就是我选择阵列路线的原因) 编辑:还有一件事,如果这可能会有帮助的话……除了整数0 1 2 3 4 5 6 7 8 9之外,再也不会有其他东西了 最好的办法是什么Php 如何在mysql单元中存储数据列表(如数组)?(但仍然可以搜索),php,mysql,actionscript-3,amfphp,Php,Mysql,Actionscript 3,Amfphp,我是mysql的新手,所以我可能只是不知道如何正确地设置这样的东西 基本上,我桌子上的每一排都是不同的食物。我有一些基本的专栏,比如描述 但是,我有一个“配料”数组和一个数组中的“多少”数组 基本上,在我这方面,我可以通过Radientsarray[0]显示多少[0]成分以及其中的多少成分 所以,我想把这两个数组都保存在一个单元格中,作为食物行 我听说我可以序列化数组并保存它。但我需要它是可搜索的 (另外,没有对配料数量的限制。所以我不喜欢每个配料都有一列,这就是我选择阵列路线的原因) 编辑:还
我正在用AS3编程,并使用AMFPHP连接到Mysql最好有一个包含一列(food_id)的配料表,该列引用food表中记录的id,并包含配料名称和数量的列
YOUR_FOOD_TABLE
food_id (PK)
description
...
FOOD_INGREDIENTS
food_id (FK)
ingredient_id (FK)
quantity
INGREDIENTS
ingredient_id (PK)
ingredient_name
然后,您可以搜索配料表,并获得包含该特定配料的所有食品的id最好有一个配料表,其中包含一列(food_id),该列引用了食品表中记录的id,以及用于配料名称和数量的列
YOUR_FOOD_TABLE
food_id (PK)
description
...
FOOD_INGREDIENTS
food_id (FK)
ingredient_id (FK)
quantity
INGREDIENTS
ingredient_id (PK)
ingredient_name
然后,您可以在配料表上搜索,并获得包含该特定配料的所有食品的ID。创建一个新的可能配料表。然后创建另一个表,将你的食物表和一堆配料联系起来
YOUR_FOOD_TABLE
food_id (PK)
description
...
FOOD_INGREDIENTS
food_id (FK)
ingredient_id (FK)
quantity
INGREDIENTS
ingredient_id (PK)
ingredient_name
创建一个包含可能成分的新表格。然后创建另一个表,将你的食物表和一堆配料联系起来
YOUR_FOOD_TABLE
food_id (PK)
description
...
FOOD_INGREDIENTS
food_id (FK)
ingredient_id (FK)
quantity
INGREDIENTS
ingredient_id (PK)
ingredient_name
序列化仍然可以进行文本搜索,但真正的解决方案是将成分分解到不同的表中,并将它们连接到包含数量的单独表中。序列化仍然可以进行文本搜索,但真正的解决方案是将成分分解到不同的表中,并将它们连接到一个单独的表中,包括数量。使用
mysql
在集合中查找
YOUR_FOOD_TABLE
food_id (PK)
description
...
FOOD_INGREDIENTS
food_id (FK)
ingredient_id (FK)
quantity
INGREDIENTS
ingredient_id (PK)
ingredient_name
请在创建此查询之前转义数组值
$insert_qry = 'INSERT INTO `table` (`ingredients`,`howmuch`) VALUES ("'.implode(',',$ingredientsArray).'", "'.implode(',',$howMuch).'")';
$search_qry = 'SELECT * FROM `table` WHERE FIND_IN_SET("bread",`ingredients`);';
使用mysql
在集合中查找
请在创建此查询之前转义数组值
$insert_qry = 'INSERT INTO `table` (`ingredients`,`howmuch`) VALUES ("'.implode(',',$ingredientsArray).'", "'.implode(',',$howMuch).'")';
$search_qry = 'SELECT * FROM `table` WHERE FIND_IN_SET("bread",`ingredients`);';
在我的搜索查询中,它不是效率低下吗?例如,在食品表上,当我进行搜索时,我将在表食品上执行搜索,然后必须像左键连接到配料表一样,然后我将搜索包含大量配料的表,但如果索引正确,它不会效率低下,它将比存储阵列更高效。搜索是数据库做得很好的地方。。。正确地使用它们,它们会让你的事情变得非常简单。。。。滥用它们,你会让事情变得非常困难。我的搜索查询不是效率低下吗,例如在食品表上搜索时,我将在表食品上执行搜索,然后必须像左键连接到配料表一样,然后我会搜索包含很多成分的表,虽然如果索引正确,效率不会很低,但比存储数组效率要高得多。搜索是数据库做得很好的地方。。。正确地使用它们,它们会让你的事情变得非常简单。。。。滥用它们,你会让事情变得非常困难。什么是PK和FK?另外,FOOD\u components
table…是否以某种方式与components
table链接?PK
是主键,FK
是外键。食品配料
表通过使用食品id
和配料id
列以及存储关系的数量
将两者链接在一起,PK和FK是什么?另外,FOOD\u components
table…是否以某种方式与components
table链接?PK
是主键,FK
是外键。FOOD\u配料
表通过使用FOOD\u id
和FOOD\u id
列以及存储数量
来将两者联系在一起。请记住,我同意其他人的看法,最好的解决方案是创建一个辅助表并使用JOIN
请记住,我同意其他人的看法,最好的解决方案是创建一个辅助表并使用JOIN