Как смоделировать родительскую пару в MySQL (SQL) - PullRequest
0 голосов
/ 18 ноября 2009

У меня есть модель данных, которая включает в себя типы элементов Stage, Actor и Form. Логически, этапам могут быть назначены пары (актер формы <--->), которые могут дублироваться много раз (т. Е. Один и тот же человек и одна и та же форма добавляются к одной и той же стадии в более позднюю дату / время).

Сейчас я моделирую это с помощью этих таблиц:

Stage
Form
Actor

Form_Actor    
_______________
|Id           |
|FormId       | --> Id in Form
|ActorId      | --> Id in Actor


Stage_FormActor
__________________
|Id              |
|StageId         | --> Id in Stage
|FormActorId     | --> Id in Form_Actor

Я использую CodeSmith для генерации слоя данных для этой настройки, и ни один из шаблонов не знает, как правильно обрабатывать этот тип отношений при генерации классов. В идеале ORM должен иметь Stage.FormActors, где FormActor будет парой Form, Actor.

Это правильный способ моделирования этих отношений. Я попытался использовать все три идентификатора в одной таблице

Stage_Form_Actor
______________
|Id          |
|StageId     | --> Id in Stage
|FormId      | --> Id in Form
|ActorId     | --> Id in Actor

Это не очень хорошо генерируется. Идеи?

1 Ответ

0 голосов
/ 18 ноября 2009

Я ничего не знаю о CodeSmith, но ваша схема базы данных для определения врожденных отношений «многие ко многим» между этими тремя объектами верна (StageFormActor one лучше).

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

...