- Каковы основные принципы и движущие силы, стоящие за партией
модель
В той степени, в которой я его использовал, в основном речь идет о повторном использовании кода и гибкости. Мы уже использовали его в модели guest / user / admin, и это, безусловно, доказывает свою ценность, когда вам нужно переместить пользователя из одной группы в другую. Распространите это на то, чтобы организации и компании были представлены под пользователями, и это действительно обеспечивает форму абстракции, которая не особенно присуща SQL.
- Что он предписывает вам делать с вашей моделью данных? (Мой бит выше
довольно высокий уровень и вполне возможно
неправильно в некоторых отношениях. Я был на
проект, который использовал это, но я был
работа с отдельной командой, ориентированной
по другим вопросам).
Вы довольно правы в своем рассуждении выше, хотя это требует некоторых подробностей. Вы можете представить себе ситуацию, когда субъект в базе данных (называемый Стороной) заключает договор с другой Стороной, что, в свою очередь, может привести к получению субподряда. Стороной может быть Сотрудник, Подрядчик или Компания, все подклассы Стороны. Насколько я понимаю, у вас будет таблица сторон, а затем более конкретные таблицы для каждого подкласса, которые затем можно будет разделить на подклассы (Сторона -> Человек -> Подрядчик).
- Что заставило вас испытать к этому ваш опыт? Вы использовали это, и если
Итак, вы бы сделали это снова? Что были
плюсы и минусы?
Он имеет свои преимущества, если вам нужно гибко добавлять новые типы в вашу систему и создавать отношения между типами, которые вы не ожидали вначале, и архитектором (пользователи переходят на новый уровень, компании нанимают другие компании и т. Д.) , Это также дает вам преимущество выполнения одного запроса и извлечения данных для различных типов сторон (компаний, сотрудников, подрядчиков). С другой стороны, вы добавляете дополнительные уровни абстракции, чтобы получить данные, которые вам действительно нужны, и увеличиваете нагрузку (или, по крайней мере, количество объединений) на базу данных, когда запрашиваете определенный тип. Если ваша абстракция заходит слишком далеко, вам, вероятно, потребуется выполнить несколько запросов для извлечения данных, так как сложность может стать вредной для читабельности и загрузки базы данных.
- Модель вечеринки ограничивала ваш выбор ОРМ? Например, ты
должны устранить определенные ORM, потому что
они не позволили достаточно
"слой абстракции" между вашим
доменные объекты и ваши физические данные
модель
Это область, в которой я, по общему признанию, немного слаб, но я обнаружил, что использование представлений и зеркальной абстракции на уровне приложений не сделало это слишком большой проблемой. Настоящей проблемой для меня всегда было «где часть данных X живет», когда я хочу читать источник данных напрямую (это также не всегда интуитивно понятно для новых разработчиков системы).