2013-09-29 4 views
0

Я немного смущен про свой дизайн db. У меня есть таблица orders, которая может иметь записи от одного из многих других. Так что нормально связывать каждую таблицу с 1: 1 до orders. Посмотрите на ordersdomains и hostings табличные отношения.Как связать таблицу с одним из многих других?

Мои orders строки таблицы имеет либо domain или hosting относительно его стоимости orders_type.

enter image description here

ответ

0

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

{Что касается областей, приказов: домены => 1: M}

+0

Да я прошу, что и говорю заказ может иметь только хостинг запись или запись домена. Не может иметь несколько хостов и/или несколько доменов в одной записи. Неправильно ли это отношение? – Kemal

+0

Вы хотите, чтобы один заказ имел только один хостинг или только один домен, и оба они оба. Поместите поле domain_id и host_id в таблицу заказов. База данных гарантирует, что вы можете иметь только один домен или один хостинг. Вашему приложению необходимо убедиться, что вы не пытаетесь поместить один из них в базу данных. (Технически, вы могли бы поставить триггер в таблице, чтобы обеспечить соблюдение этого бизнес-правила.) – AgRizzo

+0

Тогда host_id будет пустым, если заказ является порядком домена. Было бы почти 10 различных продуктов, которые пока не видят на диаграмме. Разве это не плохой дизайн для создания столбца для каждого продукта? Должен ли я использовать TRIGGER для перехода с верхней диаграммой? – Kemal

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

  • Нет связанных вопросов^_^