2012-03-01 2 views
1

Я создаю новую базу данных, и я сталкиваюсь с круглой ссылкой, и я не знаю, как наилучшим образом ее разработать.Попытка избежать круговой ссылки

так что это на простом английском языке.

У меня есть рецепт. рецепт требует ингредиентов. все это хорошо и хорошо, за исключением того, что один из ингредиентов для рецепта может потребовать другой рецепт, или это может быть магазин, купленный в магазине.

, например: Я хочу сделать салат (рецепт)
Это будет салат, морковь, лук (все хорошо до сих пор только покупные ингредиенты.).
, но я хочу, чтобы иметь ранчо. (э-э, я могу купить ранчо в магазине, но у меня есть рецепт для ранчо, который я хочу использовать, чтобы сделать ранчо.)

Как бы вы хотели создать таблицы рецептов и ингредиентов в лучших мода? Я думаю, все готово к тому, как это сделать, но оно связано с циклическими ссылками, и все веб-сайты говорят, что держитесь подальше от него.

+0

Ответ ssmusoke Я считаю правильным. Это случай, когда самореференция имеет смысл. Вам нужно будет обработать вложенный характер отношений с логикой программирования. Однако, если вы думаете о конечных пользователях, вы не хотели бы показывать им все ингредиенты каждого ингредиента для оригинального рецепта. Они сами решат, пойти ли покупать ранчо или нажать кнопку, чтобы получить рецепт ранчо. –

ответ

2

Я хотел бы предложить следующие таблицы:

а) Рецепт - название, описание, isingredient и другая информация

б) Ингредиент - название, описание, fromstore (да или нет значение, если его не купил у магазин), recipieid (идентификатор рецепта для этого ингредиента). Это позволяет ингредиенты иметь рецепты

с) recipie_ingredients - receipieid, ingredientid (в основном это связывает рецепт его ингредиентов)

Советы правильно, так как вы можете в конечном итоге в круговой петли формы ингредиентов рецептах и ​​т.д.

ОБНОВЛЕНИЕ: Я бы рекомендовал добавить колонку isingridient в рецепт, чтобы можно было только добавить рецепты, которые, как известно, ингредиенты, добавить в таблицу ингредиентов. Это может помочь уменьшить вероятность круговых ссылок

Смежные вопросы