powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Вопросы с собеседования
25 сообщений из 29, страница 1 из 2
Вопросы с собеседования
    #37121805
xslim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
День добрый! Был на собеседовани, и вот возникли вопросы, по таким заданиям:

Задание 1:

Товар перевозят из пункта A (страна,город) в пункт B (страна, город). Каждый товар закреплен за юзером(перевозчиком), и относится к определенной категории, а категория к разделу.

Предложил такую реализацию:


Сказали верно, но не подойдет по высоко-нагруженный проект. Слишком много джоинов, чтобы вытащить всю инфрмацию о заказе.

Задание 2:

Представить связь 1:n в реляционной БД. (пользователи - > роли)

Предложил такой вариант:


Не прокатило, проблема таже. Сослались что джоины на большом колличество данных положат бд.
На вопрос, как же правильно делать, не ответили. Что для них высоконагруженный проект, и каков объем данных - так же уклонились.
У меня нет опыта работы с высокопощемыми проектами. Подскажите, пожалуйста, где я ошибался. И как правильно надо было делать. Использоваль Mysql.
...
Рейтинг: 0 / 0
Вопросы с собеседования
    #37121859
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xslim,

Во втором задании users_roles(id, roles.id, users.id, roles.name, users.name, users.surname).
В первом аналогично.

Но для высоконагруженных систем использовать мускул как-то по жлобски. Если вопрос стоит в бесплатной БД то как по мне более интересно пользовать постгрес, а для платных - оракл. Так что особо расстраиваться нестоит. особенно если люди немогут сказать что они подразумевают под высоконагруженностью. Если человек невидел в глаза таких систем, то ему и 1000 обращений к базе покажется чем-то сверхестественным.
...
Рейтинг: 0 / 0
Вопросы с собеседования
    #37121898
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xslimСказали верно, но не подойдет по высоко-нагруженный проект. Слишком много джоинов, чтобы вытащить всю инфрмацию о заказе.
Я бы ответил, что если их продавцы сумеют находить столько заказов, чтобы сервер лопался от джойнов, то к критическому моменту они уже давно купят СУБД, для которой это не будет проблемой.

xslimПредставить связь 1:n в реляционной БД. (пользователи - > роли)
Точно 1:n?

xslimУ меня нет опыта работы с высокопощемыми проектами. Подскажите, пожалуйста, где я ошибался. И как правильно надо было делать. Использоваль Mysql.
Тут есть два разных вопроса: как правильно делать и как правильно отвечать на собеседовании. Тем, кто задаёт такие вопросы, правильно отвечать так: всё денормализировать, в БД - тупая свалка данных, вся логика на сервере приложений.
...
Рейтинг: 0 / 0
Вопросы с собеседования
    #37121913
xslim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarerxslimСказали верно, но не подойдет по высоко-нагруженный проект. Слишком много джоинов, чтобы вытащить всю инфрмацию о заказе.
Я бы ответил, что если их продавцы сумеют находить столько заказов, чтобы сервер лопался от джойнов, то к критическому моменту они уже давно купят СУБД, для которой это не будет проблемой.

xslimПредставить связь 1:n в реляционной БД. (пользователи - > роли)
Точно 1:n?

xslimУ меня нет опыта работы с высокопощемыми проектами. Подскажите, пожалуйста, где я ошибался. И как правильно надо было делать. Использоваль Mysql.
Тут есть два разных вопроса: как правильно делать и как правильно отвечать на собеседовании. Тем, кто задаёт такие вопросы, правильно отвечать так: всё денормализировать, в БД - тупая свалка данных, вся логика на сервере приложений.


Ой, извините, ошибся. Конечно не 1:n, а многие ко многим.

Мне очень интересно, как это правильно делать. Чтобы разобраться в теме и дальше не делать таких ляпов
...
Рейтинг: 0 / 0
Вопросы с собеседования
    #37121914
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarer... всё денормализировать , ...
Если задающий несмог ответить о какой нагрузке идет речь, то от этого слова он просто впадет в ступор. Ну или пригласит человека который в этом разбирается.
...
Рейтинг: 0 / 0
Вопросы с собеседования
    #37121927
xslim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Злой Бобрxslim,

Во втором задании users_roles(id, roles.id, users.id, roles.name, users.name, users.surname).
В первом аналогично.

Но для высоконагруженных систем использовать мускул как-то по жлобски. Если вопрос стоит в бесплатной БД то как по мне более интересно пользовать постгрес, а для платных - оракл. Так что особо расстраиваться нестоит. особенно если люди немогут сказать что они подразумевают под высоконагруженностью. Если человек невидел в глаза таких систем, то ему и 1000 обращений к базе покажется чем-то сверхестественным.


Спасибо. Тоесть фактически все свелось к денормализации и дублированию полей в 3 roles.name, users.name, users.surname, для второго случая.
Как-то думал иначе, казалось что наоборот надо все нормализовать.
...
Рейтинг: 0 / 0
Вопросы с собеседования
    #37122011
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой БобрЕсли задающий несмог ответить о какой нагрузке идет речь, то от этого слова он просто впадет в ступор.
Я употребил это слово для отвечающего. Чтобы он, если не смог понять, к чему его подводят, мог при необходимости погуглить.
...
Рейтинг: 0 / 0
Вопросы с собеседования
    #37122052
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xslimСпасибо. Тоесть фактически все свелось к денормализации и дублированию полей в 3 roles.name, users.name, users.surname, для второго случая.
Как-то думал иначе, казалось что наоборот надо все нормализовать.

Ну это исходя из логики того что предложенное неустраивает. Хотя опять таки незная счетчиков нагрузки лепить сферического коня в ваккууме дело неблагодарное. Т.е. нужно четко определиться что первоочередное - скорость или рост базы.
...
Рейтинг: 0 / 0
Вопросы с собеседования
    #37122057
xslim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Злой БобрxslimСпасибо. Тоесть фактически все свелось к денормализации и дублированию полей в 3 roles.name, users.name, users.surname, для второго случая.
Как-то думал иначе, казалось что наоборот надо все нормализовать.

Ну это исходя из логики того что предложенное неустраивает. Хотя опять таки незная счетчиков нагрузки лепить сферического коня в ваккууме дело неблагодарное. Т.е. нужно четко определиться что первоочередное - скорость или рост базы.

Я так понимаю, для веб сферы важнее скорость доступа? Хотя и рост базы тоже ведь быстр.
...
Рейтинг: 0 / 0
Вопросы с собеседования
    #37122084
sti
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerТут есть два разных вопроса: как правильно делать и как правильно отвечать на собеседовании. Тем, кто задаёт такие вопросы, правильно отвечать так: всё денормализировать, в БД - тупая свалка данных, вся логика на сервере приложений.
При условии, что после такой беседы, вы все еще хотите у них работать... :)
...
Рейтинг: 0 / 0
Вопросы с собеседования
    #37122111
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot xslim
Ой, извините, ошибся. Конечно не 1:n, а многие ко многим.
[/quot]тут без вариантов. Линковочная таблица.
...
Рейтинг: 0 / 0
Вопросы с собеседования
    #37122199
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xslimЯ так понимаю, для веб сферы важнее скорость доступа? Хотя и рост базы тоже ведь быстр.
Для любой БД важен оптимальный баланс. Утверждать что в каком-то конкретном случае что-то важнее, незная всей поднаготной, я б нестал.
...
Рейтинг: 0 / 0
Вопросы с собеседования
    #37122290
xslim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Злой БобрxslimЯ так понимаю, для веб сферы важнее скорость доступа? Хотя и рост базы тоже ведь быстр.
Для любой БД важен оптимальный баланс. Утверждать что в каком-то конкретном случае что-то важнее, незная всей поднаготной, я б нестал.

Спасибо большое. А есть ли материал или блогги полезные по этому поводу? Хочется подтянуть знания.
...
Рейтинг: 0 / 0
Вопросы с собеседования
    #37122527
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xslim,

Если есть желание повысить уровень - ходите на семинары, тренинги, читайте статьи (в т.ч. и на этом сайте). В любом случае поиск выдаст вам с десяток полезных ссылок. Посмотрите на сайтах где обсуждается железо - там иногда проскакивают интересные вещи.
На многих сайтах можно подписаться на рассылку, что немного сэкономит время при дальнейшем мониторинге.
...
Рейтинг: 0 / 0
Вопросы с собеседования
    #37122660
xslim
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Злой Бобрxslim,

Если есть желание повысить уровень - ходите на семинары, тренинги, читайте статьи (в т.ч. и на этом сайте). В любом случае поиск выдаст вам с десяток полезных ссылок. Посмотрите на сайтах где обсуждается железо - там иногда проскакивают интересные вещи.
На многих сайтах можно подписаться на рассылку, что немного сэкономит время при дальнейшем мониторинге.

Еще раз спасибо !)
...
Рейтинг: 0 / 0
Вопросы с собеседования
    #37123375
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 17.02.2011 11:15, xslim wrote:

> День добрый! Был на собеседовани, и вот возникли вопросы, по таким заданиям:

Кто такие красивые картинки рисует ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Вопросы с собеседования
    #37123380
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 17.02.2011 11:15, xslim wrote:

> Предложил такую реализацию:
> Картинка с другого сайта.

Всё вроде бы ничего, непонятно только, почему это User вдруг связан c Городом
оказался.

> Сказали верно, но не подойдет по высоко-нагруженный проект. Слишком много
> джоинов, чтобы вытащить всю инфрмацию о заказе.

Это ты у недо-БД-программистов каких=то собеседовался.
Обычно как раз люди, не разбирающиеся толком в рел. СУБД,
ужасно боятся JOIN-ов. Максимум тут их будет 7. Немного, ничего
страшного нет.

>
> *Задание 2:*
>
> Представить связь 1:n в реляционной БД. (пользователи - > роли)
> Предложил такой вариант:

Это неверно. Это связь "многие-ко-многим" ты нарисовал. Перестарался.

У тебя в первой модельке связь 1:N между countries и cityes, между
users & orders, между sections & categories
(и ещё парочка).


> Не прокатило, проблема таже. Сослались что джоины на большом колличество данных
> положат бд.

Ну ламера, что взять.

> На вопрос, как же правильно делать, не ответили. Что для них высоконагруженный
> проект, и каков объем данных - так же уклонились.

Они просто не умеют писать запросы и готовить РСУБД.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Вопросы с собеседования
    #37123382
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 17.02.2011 11:44, softwarer wrote:

> Тут есть два разных вопроса: как правильно делать и как правильно отвечать на
> собеседовании. Тем, кто задаёт такие вопросы, правильно отвечать так: всё
> денормализировать, в БД - тупая свалка данных, вся логика на сервере приложений.

Зачем такие дурные советы даёщь ?

Если тебе задают вопросы в таком ключе, с таким подходом, надо
бежать подальше от этой конторы. ПОтому что пойдёшь туда -- и будешь
это денормализованное говно месить пока не уволишься.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Вопросы с собеседования
    #37123384
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 17.02.2011 11:48, xslim wrote:

>
> Ой, извините, ошибся. Конечно не 1:n, а многие ко многим.
>
> Мне очень интересно, как это правильно делать. Чтобы разобраться в теме и дальше
> не делать таких ляпов

Тогда ты правильно сделал всё.
Только поле id в user_roles не нужны ЧАЩЕ ВСЕГО.
Можно делать только когда есть ссылки на эту таблицу.
Чаще всего их нет.


Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Вопросы с собеседования
    #37123387
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 17.02.2011 13:27, Злой Бобр wrote:

> Для любой БД важен оптимальный баланс. Утверждать что в каком-то конкретном
> случае что-то важнее, незная всей поднаготной, я б нестал.

Никакого балланса. Сначала -- нормальная БД.
Потом -- её скорость работы. В условиях нормальной структуры.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Вопросы с собеседования
    #37125070
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv,
авторСослались что джоины на большом колличество данных
> положат бд.

Ну да, иначе никто и не придумал бы денормализацию, звезды со снежинками и олап.
...
Рейтинг: 0 / 0
Вопросы с собеседования
    #37125078
muk07
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Экзамен - процесс более менее симметричный.
Экзаменатор оценивает экзаменуемого.
Экзаменуемый - экзаменатора (по качеству вопросов).
Лично я после такого интервью отказался бы от мысли работать в этой конторе.
...
Рейтинг: 0 / 0
Вопросы с собеседования
    #37125638
exploys
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В первом случае объединить таблицы countries с cities и sections с categories. Но countries и sections оставить и отдельными таблицами.
Убрать связь users c cities.
Дальше делаются грамотные запросы и индексы.
Но либо вопрошающий был неграмотный, либо от вас ждал уточняющих вопросов по задаче. Количество строк в таблицах, количество обращений в секунду, и самое главное какие данные чаще всего и быстрее всего надо получать.
Это если правильно отвечать для MySQL. А как вопрошающему отвечать, зависит от вашего настроя и его заблуждений.

Если все денормализовать - вырастет объем данных - больше чтений с диска. А если "играют" на границе объема ОЗУ, то денормализация всего вообще на пару порядков скорость снизит.
...
Рейтинг: 0 / 0
Вопросы с собеседования
    #37125651
Фотография Garfish
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xslim,
тут вопрос компромиса, а не идеальности воплащения теории БД.

надо делать прямые связи с выходными таблицами, то есть жертвовать местом на диске ради скорости обработки,
если утрировать, представь модель в которой у тебя, что бы вывести нужную информацию надо связать через джоины 30 таблиц , получится этим запросом придется серверу просматривать все 30 таблиц что бы найти связь, а если в каждой по 1 млн записей, тогда таким запросом ты сервер поставишь на колени, и убьешь время клиента
...
Рейтинг: 0 / 0
Вопросы с собеседования
    #37138637
Фотография Роман Дынник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На мой взгляд, вцелом спроектировано все верно в обоих заданиях.
Оптимизация должна лежать несколько в иной плоскости, не в ущерб целостности и нормализации.
Для OLTP системы следует рассмотреть механизмы секционирования больших таблиц, а так же индексированные/материализованные представления, кот. и выступают в данном случае некоторым механизмом денормализации повышающем производительность, при этом оставляя целостность данных, их атомарность и нормализованность в прежнем виде.
Следует подумать, как уже выше кто то заметил, о механизмах кеширования на стороне сервера приложений.

Если речь идет о некоторой системе отчетности, то данные из OLTP должны переливаться в OLAP-хранилище
Его как правило проектируют денормализованным.

Люди которые бояться джоинов, в том числе в высоконагруженных системах, возможно не понимают разницу между внешним и внутренним соединением. Внутреннее соединение - дешовая операция.
Более того, оно может даже повысить производительность, если будет использовано горизонтальное секционирование и таблицы будут разнесены по разным серверам в кластере.
Если же эти люди в каждом запросе, с поводом и без, пишут outer join вместо join, а то и желают спихнуть все в одну таблицу или в XML в OLTP-системе, следует задуматься а стоит ли с ними работать...
...
Рейтинг: 0 / 0
25 сообщений из 29, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Вопросы с собеседования
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]