Solution CREATE TABLE ingredients ( uid integer, ... -- nutritional info ) CREATE TABLE recipes ( uid integer, uid_bridge integer -- uids in bridge table ) CREATE TABLE bridge ( uid integer, uid_ingredients integer -- uids in table ingredients ) rows in recipes table can be unique for each recipe, rows in bridge table are a row per recipe per ingredient in that recipe.