powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Какую структуру базы выбрать? Посоветуйте...
4 сообщений из 4, страница 1 из 1
Какую структуру базы выбрать? Посоветуйте...
    #36158975
Sebastian Pereiro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Необходимо создать дерево каталогов в SQL. У каждого юзера свое дерево и это дерево может быть любой степени вложенности. Существует 2 вида юзеров: user и vip (назовем их так). User может иметь, к примеру, дерево с 50 элементами. Vip – c 1000 элементов. Количество userов может быть несколько тысяч. Количество vip – от силы 2000-3000.
И так вижу 3 варианта решения:
1) табличка по принципу смежных вершин (Adjacency List).
Табличка содержит столбцы: со столбцами id записи, родительский id (id папки в которой находится запись), ну может быть еще уровень. Решение простое, но как говорят знающие люди – имеет массу узких мест.
Плюсы: простота реализации; добаление, удаление и перемещение одного элемента не приводит к изменению других элементов (почти).
Минусы: сложные запросы, если надо выбрать всех потомков одного родителя и т.д.
2) таблица по принципу вложенных множеств (Nested Sets http://habrahabr.ru/blogs/development/46659/). Табличка содержит столбцы: id записи, уровень (на котором находится запись), правый ключ, левый ключ.
Плюсы: соответственно запросы простые.
Минусы: изменение одного элемента приводит к переписи почти всех ключей последующих элементов – в результате наверняка дикие тормоза.
3) возможно мое изобретение – таблица по принципу вложенных множеств, но ключи идут не подряд, а выделяются промежутки значений ключей для каждого пользователя.
Т.к. у нас для простого юзера есть ограничение на 50 элементов – выделяем каждому по 100 ключей. Т.е. 1-й юзер – ключи от 1 до 100, 2-й юзер – ключи от 101 до 200 и т.д. Для vip будет другая таблица, т.к. у нас ограничение на 1000 элементов, то выделяем для каждого випа диапазон ключей в 2000 ключей. Т.е. для 1-го випа – ключи от 1 до 2000, для 2-го випа – от 2001 до 4000 и т.д.
Плюсы: простые запросы; изменение одного элемента не влияет на ключи элементов других юзеров – следовательно минимум тормозов.
Минус: заморочки с распределением диапазонов ключей.
Я что-то пропустил? Плюсы-минусы?
Хотел бы услышать мнение опытных людей – какой вариант лучше? Может что-то предложите свое?
...
Рейтинг: 0 / 0
Какую структуру базы выбрать? Посоветуйте...
    #36158996
Фотография ChA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вы же не думаете, что первый, кто об этом задумался ? Тема иерархии уже многократно обсуждалась на форуме. Рекомендую начать отсюда .
...
Рейтинг: 0 / 0
Какую структуру базы выбрать? Посоветуйте...
    #36164950
TEMHOTA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Лучше - универсальную :
http://flexiobjdb.narod.ru/
...
Рейтинг: 0 / 0
Какую структуру базы выбрать? Посоветуйте...
    #36166675
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Модераторы, мочите спамбота
ЗЫ. Это сообщение тоже сотрите.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Какую структуру базы выбрать? Посоветуйте...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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