TGStat
TGStat
Введите текст для поиска
Расширенный поиск каналов
  • flag Russian
    Язык сайта
    flag Russian flag English flag Uzbek
  • Вход на сайт
  • Каталог
    Каталог каналов и чатов Региональные подборки Тематические подборки Платные каналы Поиск каналов
    Добавить канал/чат
  • Рейтинги
    Рейтинг каналов Рейтинг чатов Рейтинг публикаций
    Рейтинги брендов и персон
  • Аналитика
  • Поиск по публикациям
  • Мониторинг Telegram
  • Продвижение
    Реклама через Яндекс Бизнес Реклама в каналах через TGStat Agency Реклама на сайте TGStat.ru
Системный аналитик в финтехе/Orlova courses

13 Feb, 18:46

Открыть в Telegram Поделиться Пожаловаться

По мотивам опроса выше. Реальный кейс.

Представьте, что вы приходите на собеседование. Вас спрашивают про БД/ERD и задают вопрос:
«Как в ERD реализовать связь многие ко многим?»
Вы уверенно отвечаете:
Через промежуточную таблицу.

И тут вам говорят:
— Неверно. Речь идёт об ассоциативной сущности.

И вот здесь начинается самое интересное.

Что на самом деле проверяет интервьюер?
Он проверяет, различаете ли вы:
концептуальную модель данных
и физическую реализацию в БД
Потому что ERD (Entity Relationship Diagram) — это диаграмма «сущность–связь», графическая модель данных, которая описывает сущности предметной области, их атрибуты и отношения между ними.
Концептуально - это модель бизнеса, а не структура таблиц.

Концептуальная ERD:
- описывает сущности предметной области
- не привязана к СУБД
- отвечает на вопрос: что существует в бизнесе?
Физическая модель:
- таблицы
- внешние ключи
- типы данных
- ограничения

Сущность ≠ таблица.
Сущность — это абстракция.
Таблица — её реализация в базе данных.
И вот «промежуточная таблица или ассоциативная таблица» — это термин физического уровня.
А «ассоциативная сущность» — термин концептуального.

Что такое связь многие ко многим?
Связь M:N означает:
одной записи в сущности A соответствует много записей в B
и наоборот
Классический пример:
Студенты — Курсы
Один студент посещает много курсов.
Один курс содержит много студентов.
Почему нельзя оставить M:N напрямую?
В концептуальной ERD её можно показать.
Но при переходе к логической/физической модели она обязательно разрешается.
Реляционная модель данных напрямую поддерживает только 1:1 и 1:M.
M:N всегда разбивается на две связи 1:M.
Что такое ассоциативная сущность?
Это новая сущность, которая:
возникает из связи M:N
разбивает её на две 1:M
может иметь собственные атрибуты
Пример:
Есть сущности:
Students
Courses
Создаём сущность:
Enrollment
И получаем:
Student 1 — M Enrollment
Course 1 — M Enrollment
А уже потом, на физическом уровне,
Enrollment становится таблицей с внешними ключами.
Если в ней только два ключа — это таблица-мост.
Если появляются дата записи, статус, оценка — её бизнес-смысл становится очевиднее.
Но важно:
она уже сущность в модели.
Она не «становится» сущностью из-за атрибутов.
В чём была ошибка ответа?
Ответ «через промежуточную таблицу» — технически верный для БД.
Но если мыслить глобальнее.
Правильнее ответить так:
Связь многие ко многим в ERD разрешается через ассоциативную сущность, которая разбивает её на две связи один-ко-многим.


Интервьюер тут проверял начитанность и уровень мышления кандидата. Но нужно ли разделять понятия "сущность"/"таблица" и прочие в реальной работе?

Что ещё странного у вас спрашивали на интервью?

Как думаете, нужны ли такие знания при работе с реальными задачами: да👍/нет🙈?

2.3k 2 52 20 53
Каталог
Каталог каналов и чатов Подборки каналов Поиск каналов Добавить канал/чат
Рейтинги
Рейтинг каналов Telegram Рейтинг чатов Telegram Рейтинг публикаций Рейтинги брендов и персон
API
API статистики API поиска публикаций API Callback
Наши каналы
@TGStat @TGStat_Chat @telepulse @TGStatAPI
Почитать
Академия TGStat Исследование Telegram 2019 Исследование Telegram 2021 Исследование Telegram 2023
Контакты
Справочный центр Поддержка Почта Вакансии
Всякая всячина
Пользовательское соглашение Политика конфиденциальности Публичная оферта
Наши боты
@TGStat_Bot @SearcheeBot @TGAlertsBot @tg_analytics_bot @TGStatChatBot