• Как реализовать поиск данных в бд по заданным параметрам?

    DmitriyEntelis
    @DmitriyEntelis
    Думаю за деньги
    Я позволю поставить ссылку на недавний вопрос Как лучше устроить базу данных?

    Основные тезисы такие же:
    - иметь NN столбцов в одной таблице - однозначно плохо, поэтому умещать все в одной таблице - bad design.
    - в любой непонятной ситуации проектируйте базу исходя из 3НФ (google it) и все будет хорошо.

    В данном конкретном случае, у вас есть 2 основные сущности: рецепт и продукт с соотношением многие-ко-многим, соответственно правильная структура базы в упрощенном виде:

    1. Рецепт
    • id рецепта (integer, primary, auto increment)
    • название рецепта (varchar)
    2. Продукт
    • id продукта (integer, primary, auto increment)
    • название продукта (varchar)
    3. Единица измерения (добавил для примера, не обязательно)
    • id единицы измерения (integer, primary, auto increment)
    • название единицы измерения (varchar)
    4. Элемент рецепта
    • id рецепта
    • id продукта
    • id единицы измерения
    • количество продукта в указанных единицах измерения (decimal)

    В последней таблице можно сделать составной PRIMARY (id рецепта, id продукта), а можно добавить еще отдельный PRIMARY автоинкрементный, а указанный выше составной ключ сделать просто UNIQUE.
    Ответ написан
    Комментировать