Построение баз данных

программирование базы данных sql Firebird

Базы данных



Есть таблицы

Дети {id, name}

Типы угощений {id, name}

Угощения {id, name, id_tasty_type (из Типы угощений)}

Дети+Угощения {id_child, id_tasty}



У каждого ребенка может быть не более чем одно угощение одного типа

Как поставить такое ограничение на создание новой записи в Дети+Угощения?

Или как реализовать это другим способом?

Примечание:
Правильно связь МНОГО-МНОГО
угощение например овсяное печенье могут дать двум детям
дете может иметь все типы угощиний, но по одному, например овсяное печенье (тип печенье), груша (тип фрукт) и тд

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

Примечание:
так же компоненты не уникальны а типичны, т.е. розовая большая раковина за 100 евро может быть поставленна в две разные ванные комнаты
Ответы:
Дети {id, name, ID_УГОЩЕНИЯ}
Типы угощений {id, name}
Угощения {id, name, id_tasty_type (из Типы угощений)}


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.