Как смоделировать таблицы с внешними ключами от нескольких других таблиц

Я думаю, что вы должны предоставить полный шаблон пути к setTemplate, в вашем switch

    $view = new ViewModel([
                   'ansprechpartner' => $this->ansprechpartnerTable->sucheAnsprechpartner($suche['suche']),
                        ]);
   $view->setTemplate('stammdaten/ansprechpartner/index');
   return $view;
5
задан Amit 17 March 2009 в 00:18
поделиться

2 ответа

Вы затронули несколько методов, я утверждал бы, что Вы избегаете. Я записал больше об этом в Ошибках Разработки базы данных, Сделанных AppDevelopers (например, эксклюзивные дуги).

Относительно Вашей проблемы, я на самом деле не выбрал бы ни одну из тех опций. То, к чему Вы спотыкаетесь, является универсальной моделью Party. В основном у Вас есть Партийный объект с подтипами, такими как Человек и Организация. Контакты имеют Партийный идентификатор как внешний ключ. Использование общего суперкласса/суперобъекта намного более глубоко, чем это однако, поскольку Вы найдете использование этого для многих других вещей также (например, целое ролевое понятие).

Много этих проблем моделирования проектирования баз данных имеет сформировавшиеся решения их, но это не имеет тенденцию быть видом вещи, которую когда-либо преподают программистам. Я настоятельно рекомендую получение книги Книга Ресурса Модели данных, Издание 1: Библиотека Универсальных Моделей данных для Всех Предприятий, которая вдается в намного большее количество подробностей о том, как смоделировать людей и организации, а также много других типичных проблем.

Ключевой пункт для запоминания вот - то, что то, что Вы делаете, было сделано прежде.

8
ответ дан 14 December 2019 в 04:48
поделиться

Или Опция № 2 или я сделали бы это:

Вы могли создать EntityTable, который определит тип идентификатора и Объекта, затем у Вас может быть свой Адрес, почтовые таблицы связываются с той.

Вы затем Create Person & Company Table, что ссылка назад на Объект. Otherwords Ваш Объект разделения на подклассы.

Опция № 1 - я использовал это в прошлом, и это может стать головной болью для управления, поскольку вещи являются сложными, и вырасти.

Опция № 3 - Вы не можете использовать referenctial целостность и стоимость, которую Вы заставляете от сохранения нескольких нажатий клавиш делать, опция № 2 не будет стоить очищать неправильные данные или иметь дело с дополнительной сложностью.

0
ответ дан 14 December 2019 в 04:48
поделиться
Другие вопросы по тегам:

Похожие вопросы: