4656. Вы проектируете схему БД для блога. Нужно реализовать функцию «лайков» под статьями и комментариями. Ожидаются миллионы пользователей и активные взаимодействия. Как лучше смоделировать хранение лайков?
Anonymous Quiz
27%
Добавить в таблицы Articles и Comments счетчики likes_count и увеличивать их при лайке.
2%
Хранить массив liked_user_ids в записи статьи или комментария.
38%
Для статей и комментариев создать отдельные таблицы Article_Likes и Comment_Likes.
34%
Создать одну таблицу Likes с полями: user_id, target_type (статья/комментарий), target_id.
👩🏫Объяснение:
Вариант A (только счетчик) не позволяет проверить, поставил ли конкретный пользователь лайк (чтобы убрать его), и уязвим для накруток. Вариант D (одна таблица с полиморфной связью) — распространенный и гибкий паттерн. Он позволяет одним запросом получить все лайки пользователя и легко обеспечить уникальность (чтобы один пользователь не лайкнул дважды). Вариант C (отдельные таблицы) ведет к дублированию структуры. Вариант B (массив) плохо масштабируется и неэффективен для выборок в реляционной БД.
4657. В производственную БД интернет-магазина нужно добавить новое обязательное поле external_system_id в крупную таблицу Customers. Поле уже заполнено для новых клиентов. Какая операция ALTER TABLE наиболее безопасна для выполнения на рабочей системе?
Anonymous Quiz
43%
ALTER TABLE customers ADD COLUMN external_system_id INT NULL обновить данные, затем сделать NOT NULL
12%
ALTER TABLE customers ADD COLUMN external_system_id INT NOT NULL;
26%
ALTER TABLE customers ADD COLUMN external_system_id INT NOT NULL DEFAULT 0;
19%
Создать новую таблицу с нужной структурой и переливать данные постепенно.
👩🏫Объяснение:
В большинстве СУБД (особенно старых версий MySQL) добавление колонки с NOT NULL и без DEFAULT к большой таблице вызовет долгую блокирующую операцию и простои. Самый безопасный подход: 1) Добавить колонку как NULLABLE (это быстрая мета-операция). 2) Фоном заполнить ее значениями. 3) Установить ограничение NOT NULL. Вариант C с DEFAULT в некоторых СУБД также может привести к перестройке всей таблицы. Вариант D — чрезмерно сложен для такой задачи.
В большинстве СУБД (особенно старых версий MySQL) добавление колонки с NOT NULL и без DEFAULT к большой таблице вызовет долгую блокирующую операцию и простои. Самый безопасный подход: 1) Добавить колонку как NULLABLE (это быстрая мета-операция). 2) Фоном заполнить ее значениями. 3) Установить ограничение NOT NULL. Вариант C с DEFAULT в некоторых СУБД также может привести к перестройке всей таблицы. Вариант D — чрезмерно сложен для такой задачи.
4658. Вы анализируете проблему: в системе бронирования после оплаты иногда создается билет, но статус заказа не обновляется с «Ожидает оплаты» на «Оплачен». Какой механизм БД должен был гарантировать целостность этой операции?
Anonymous Quiz
6%
FOREIGN KEY
24%
TRIGGER
70%
TRANSACTION
0%
VIEW
👩🏫Объяснение:
Это прямая иллюстрация принципа атомарности из ACID. Операция «списать деньги + создать билет + обновить статус заказа» должна выполняться как единая транзакция. Если любой шаг fails, ROLLBACK откатывает всё. Без транзакции при сбое после создания билета возникает рассогласование. FOREIGN KEY (A) гарантирует целостность связей, TRIGGER (B) — автоматизацию действий, VIEW (D) — виртуальное представление, но ничто из этого не обеспечивает атомарность группы запросов.
4659. При слиянии двух компаний необходимо объединить данных о клиентах из двух независимых БД. В обеих есть таблицы users. Поля частично совпадают (email, phone), но ID-шники разные. Какой процесс НЕ является частью решения этой задачи?
Anonymous Quiz
17%
ETL (Extract, Transform, Load)
7%
Дедупликация записей
66%
Репликация Master-Slave
10%
Сопоставление (Matching) сущностей
👩🏫Объяснение:
Миграция и консолидация данных — сложный практический кейс. Ключевые этапы: извлечение данных из источников, трансформация (приведение к общей схеме), сопоставление (определение, что записи из разных БД относятся к одному клиенту), дедупликация (устранение дублей) и, наконец, загрузка в целевую систему. Это и есть ETL-процесс. Репликация Master-Slave — это механизм копирования данных из основной БД в резервную для отказоустойчивости или чтения, но не для слияния двух разных схем. Она не решает проблему консолидации.
Праздники отгремели 🎄
Пока кто-то доедал салаты, мир ИИ и IT успел сделать ещё один резкий скачок вперёд 🚀
Нейросети окончательно вышли из категории «интересной новинки».
В новом году ИИ уже внедряют в реальные процессы: автоматизацию, продажи, поддержку клиентов, аналитику и принятие решений.
Это больше не про эксперименты — это про выживание и рост.
Либо ты умеешь работать с ИИ, либо остаёшься вне игры.
Мы собрали экспертные каналы для тех, кто хочет понимать ИИ и использовать его с выгодой 👇
Забрать ПОДБОРКУ 👉 https://news.1rj.ru/str/addlist/OabgMkJT_09lNWM8
Внутри:
— ИИ без магии, хайпа и сложных слов
— понятные сценарии и лайфхаки применения нейросетей
— технологии, которые экономят время, деньги и нервы
Здесь не учат «как надо». Здесь показывают, как действительно это работает сейчас. Если вы предприниматель, специалист или просто хотите понимать, куда всё движется и как зарабатывать в эпоху ИИ — вам сюда ⬇️
👉 Забрать ПАПКУ:
https://news.1rj.ru/str/addlist/OabgMkJT_09lNWM8
Новый год — хороший момент обновить не только цели, но и своё мышление. Получай лучшие ИИ инструменты на старте года ♨️ Через 48 часов ссылка на подборку будет удалена ...
Пока кто-то доедал салаты, мир ИИ и IT успел сделать ещё один резкий скачок вперёд 🚀
Нейросети окончательно вышли из категории «интересной новинки».
В новом году ИИ уже внедряют в реальные процессы: автоматизацию, продажи, поддержку клиентов, аналитику и принятие решений.
Это больше не про эксперименты — это про выживание и рост.
Либо ты умеешь работать с ИИ, либо остаёшься вне игры.
Мы собрали экспертные каналы для тех, кто хочет понимать ИИ и использовать его с выгодой 👇
Забрать ПОДБОРКУ 👉 https://news.1rj.ru/str/addlist/OabgMkJT_09lNWM8
Внутри:
— ИИ без магии, хайпа и сложных слов
— понятные сценарии и лайфхаки применения нейросетей
— технологии, которые экономят время, деньги и нервы
Здесь не учат «как надо». Здесь показывают, как действительно это работает сейчас. Если вы предприниматель, специалист или просто хотите понимать, куда всё движется и как зарабатывать в эпоху ИИ — вам сюда ⬇️
👉 Забрать ПАПКУ:
https://news.1rj.ru/str/addlist/OabgMkJT_09lNWM8
Новый год — хороший момент обновить не только цели, но и своё мышление. Получай лучшие ИИ инструменты на старте года ♨️ Через 48 часов ссылка на подборку будет удалена ...
4660. В системе управления складом есть таблица StockMovements с миллионами записей о перемещениях товаров. Для формирования отчета нужно часто вычислять сумму приходов и расходов. Что будет самым эффективным решением для ускорения таких отчетов?
Anonymous Quiz
34%
Создать материализованное представление (materialized view), которое ежедневно пересчитывает остатки
13%
Каждый раз выполнять агрегирующий запрос с SUM() и GROUP BY, добавив индекс на product_id и date
36%
Завести таблицу CurrentStock, которую обновлять триггером при каждой операции движения.
16%
Перейти на колоночную СУБД (например, ClickHouse) для хранения исторических движений.
❤1
👩🏫Объяснение:
Это классическая задача баланса между оперативными транзакциями и аналитическими запросами. Материализованное представление — это «снимок» результата запроса, физически сохраненный в БД, который можно периодически обновлять (например, ночью). Это идеально подходит для ежедневных отчетов, где не нужны данные в реальном времени. Вариант B неэффективен при большом объеме данных, вариант C усложнит транзакции и может стать узким местом, а вариант D — слишком радикальное архитектурное изменение для одной задачи.
ХОЧЕШЬ ИДТИ В НОГУ С ТЕХНОЛОГИЯМИ ?! … или наблюдать, как другие зарабатывают на ИИ? - РЕШАТЬ ТЕБЕ ! ! !
Мы подготовили для тебя ПАПКУ с лучшими каналами про ИИ после которой ИИ станет твоим главным инструментом, а не загадкой 🧐
🎁 Забирай папку с ТОП ИИ Каналами 👉 https://news.1rj.ru/str/addlist/OabgMkJT_09lNWM8
Внутри — концентрат пользы без воды:
* практические советы от экспертов
* инструменты, которые экономят часы работы
* идеи и кейсы, которые уже приносят деньги
Пока нейросети не ушли далеко вперёд без тебя,
подписывайся прямо сейчас. Ссылка на ПОДБОРКУ 👈 ➡️ https://news.1rj.ru/str/addlist/OabgMkJT_09lNWM8
Что найдёшь в подборке:
⚡️ мощные промпты для текстов, изображений и контента
⚡️ гайд по созданию ИИ-ассистента 24/7
⚡️ рабочие схемы продаж с помощью нейросетей — без теории, только практика
📦 Забирай доступ к подборке и бонусам 🗝
В любой момент его могут закрыть ⏳
👉 https://news.1rj.ru/str/addlist/OabgMkJT_09lNWM8
Мы подготовили для тебя ПАПКУ с лучшими каналами про ИИ после которой ИИ станет твоим главным инструментом, а не загадкой 🧐
🎁 Забирай папку с ТОП ИИ Каналами 👉 https://news.1rj.ru/str/addlist/OabgMkJT_09lNWM8
Внутри — концентрат пользы без воды:
* практические советы от экспертов
* инструменты, которые экономят часы работы
* идеи и кейсы, которые уже приносят деньги
Пока нейросети не ушли далеко вперёд без тебя,
подписывайся прямо сейчас. Ссылка на ПОДБОРКУ 👈 ➡️ https://news.1rj.ru/str/addlist/OabgMkJT_09lNWM8
Что найдёшь в подборке:
⚡️ мощные промпты для текстов, изображений и контента
⚡️ гайд по созданию ИИ-ассистента 24/7
⚡️ рабочие схемы продаж с помощью нейросетей — без теории, только практика
📦 Забирай доступ к подборке и бонусам 🗝
В любой момент его могут закрыть ⏳
👉 https://news.1rj.ru/str/addlist/OabgMkJT_09lNWM8
4661. При проектировании высоконагруженного чата вы решили хранить сообщения в реляционной БД.. Какой подход к первичному ключу таблицы Messages наиболее оптимален?
Anonymous Quiz
16%
INT AUTO_INCREMENT (последовательный числовой)
21%
UUID (случайный универсальный идентификатор)
34%
BIGINT, генерируемый распределенной Snowflake-алгоритмом
29%
Составной ключ (dialog_id, created_at)
👩🏫Объяснение:
Для высоконагруженных систем с горизонтальным масштабированием (шардингом) важны распределенные и временно-упорядоченные идентификаторы. AUTO_INCREMENT (A) создает горячую точку (hotspot) на одном сервере и не подходит для шардинга. UUID (B) случайный, что убивает локальность данных и приводит к фрагментации индексов, ухудшая производительность вставки и выборки. Snowflake-алгоритм (C) генерирует монотонно возрастающие ID, которые упорядочены по времени и уникальны в распределенной среде — это оптимально для шардинга и кластеризованных индексов. Составной ключ (D) усложняет связи и не является глобально уникальным.