2013-03-24 7 views
0

Невозможно выяснить отношения в этом сценарии:Это один-ко-многим или многим-многим?

Я хочу создать список флажков для типов доходов. Пользовательский интерфейс будет представлен как «Какие виды дохода вы получаете?». Выбор, чтобы держать вещи простыми, мог быть полный рабочий день, неполный рабочий день и выход на пенсию.

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

Но я не думаю о «полной занятости» как об объекте, например, о актерах и фильмах, где многие актеры могут быть во многих фильмах, и многие фильмы могут иметь много разных актеров.

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

В этом случае, что это такое?

+0

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

+0

@Teejay, поразмыслить в ответе? –

+0

FYI: не рекомендуется использовать таблицу ассоциаций - просто сделайте это правильно. –

ответ

0

Это зависит от того, есть ли у вас тип дохода в виде отдельной таблицы или является ли это просто строка.

Для отдельной таблицы это много-ко-многим: каждый человек имеет несколько типов дохода.Каждый тип дохода имеет несколько лиц.

1

many-to-many: Person до Employment Type.

Многие Person могут делиться одним Employment Type.

Один Person может иметь несколько Employment Type s.

Сказав это, я не имею ни малейшего представления о том, как богата ваша бизнес-модель, но я бы прикрепить Employment Type к объекту называется Employment, который будет ссылаться Employment Type на many-to-one ассоциации (а не ссылаясь прямо из Person).

+0

Хорошо, это немного уточняет - я буду использовать таблицу ассоциаций. –

1

С моей точки зрения, это отношения «многие ко многим».

полный рабочий день является сущностью (предположим, что таблица INCOME_TYPES), точно так же, как актер или фильм.

Так как вы говорите нам, вы не будете показывать вещи доход типа стороне но только индивидуальные стороне, есть две альтернативы:

  1. De-нормализуют вашу схему и положить 3-поля в таблице INDIVIDUALS. Это не очень приятно.

  2. Если вы используете часть кода, вы можете использовать битовую маску.

    • например, 1 для полной занятости, 2 для неполного рабочего дня и 4 для выхода на пенсию.
Смежные вопросы