Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 列数未知的Postgres数据库表_Postgresql - Fatal编程技术网

Postgresql 列数未知的Postgres数据库表

Postgresql 列数未知的Postgres数据库表,postgresql,Postgresql,因此,我试图找出创建包含未知列数的数据存储的最佳方法 比如说我有一张有食谱的桌子。食谱通常有配料。有的有5个,有的有8个,有的有10个。你明白了。当我不知道有多少配料时,储存食谱的最佳方式是什么 我想在桌子里面用一个数组来做配料。然而,像“查找包含x成分的所有配方”这样的查询似乎很难构建。这是因为有时配料可以是“烟熏x”或“腌制x” 所以我想知道是否有更好的选择?这就是外键关系的用途。您可以有三个表:配方、成分和配方成分RecipeingCredit将代表配方和配料之间的多种关系(换句话说:一个

因此,我试图找出创建包含未知列数的数据存储的最佳方法

比如说我有一张有食谱的桌子。食谱通常有配料。有的有5个,有的有8个,有的有10个。你明白了。当我不知道有多少配料时,储存食谱的最佳方式是什么

我想在桌子里面用一个数组来做配料。然而,像“查找包含x成分的所有配方”这样的查询似乎很难构建。这是因为有时配料可以是“烟熏x”或“腌制x”


所以我想知道是否有更好的选择?

这就是外键关系的用途。您可以有三个表:
配方
成分
配方成分
<代码>RecipeingCredit将代表配方和配料之间的多种关系(换句话说:一个配方可以有x种配料,每个配料都可以在y种配方中使用,其中x和y>1)。 这将允许您查询具有特定成分的所有配方,如下所示:

SELECT r.* FROM recipe r 
    LEFT JOIN recipe_ingredient ri ON ri.recipe_id = r.id 
    LEFT JOIN ingredient i ON i.id = ri.ingredient_id 
WHERE i.name = 'Onion'

这就是与外键的关系的用途。您可以有三个表:
配方
成分
配方成分
<代码>RecipeingCredit将代表配方和配料之间的多种关系(换句话说:一个配方可以有x种配料,每个配料都可以在y种配方中使用,其中x和y>1)。 这将允许您查询具有特定成分的所有配方,如下所示:

SELECT r.* FROM recipe r 
    LEFT JOIN recipe_ingredient ri ON ri.recipe_id = r.id 
    LEFT JOIN ingredient i ON i.id = ri.ingredient_id 
WHERE i.name = 'Onion'