|
20 / 19 / 3
Регистрация: 23.09.2014
Сообщений: 285
|
|
MySQL Пятиуровневый массив в базе - как лучше хранить?27.11.2018, 22:57. Показов 800. Ответов 3
Метки нет (Все метки)
Добрый день
Требуется организовать хранение массива с пятиуровневым вложением, с доступностью на редактирование (а так-же создание) отдельных ветвей и вложений одновременно несколькими (а возможно несколько десятков) пользователями (разных ветвей) Массив планируется оооочень большим, тут решающим фактором является скорость доступа к данным массива и ее ветвям Приведу пример по подобии библиотеки, предположим: 1 - есть 250 стеллажей 2 - на каждом стеллаже от 50 и более полок 3 - на каждой полке от 100 и более отсеков 4 - в каждом отсеке от 100 и более стопок с книгами 5 - в каждой стопке от 5 книг, и более Каждый пользователь с правами на редактирования может просматривать любые ветви, но редактировать только свои (последнее не обязательно) - и это только те кто имеет право редактирования, еще планируются пользователи имеющие право только на чтение, которых на порядок больше (собственно для них это все и делается) что-то в этом роде) Подскажите пожалуйста как можно организовать хранение подобного массива данных? - просто теория организации может это таблица в базе особой структуры, или JSON массив, или что-то иное!? Будет интересно узнать любое мнение и решение данной задачи 625000000 - книг, об этом, даже страшно думать =)
0
|
|
| 27.11.2018, 22:57 | |
|
Ответы с готовыми решениями:
3
Объясните, как лучше хранить картинки на сайте? Как лучше хранить корзину в интернет-магазине? |
|
20 / 19 / 3
Регистрация: 23.09.2014
Сообщений: 285
|
||||||
| 28.11.2018, 21:33 [ТС] | ||||||
|
может стоит использовать обычную таблицу MySQL и расставить текстовые индексы?, типа "001000000000000", а при обращении к базе разбирать текст, ну т.е. эти текстовые индексы?
вот как это представляется сейчас:
![]() Как Вы думаете, на сколько задумается у клиента браузер при формировании одной иерархической ветви массива полученной из БД, при том что индекс каждого будут обрабатываться отдельно? - вспоминается тысячелетнее ожидание в Win95 Или может делать пять посегментных запросов одновременно? я очень надеюсь не кого не замкнуло
0
|
||||||
|
133 / 118 / 34
Регистрация: 04.04.2018
Сообщений: 593
|
||
| 29.11.2018, 01:57 | ||
|
Добавлено через 3 минуты Да и не задумается браузер, Вы будете выбирать числа, 1 запрос на 5 таблиц, и все построится как необходимо, а там и результат отдаст.
0
|
||
|
20 / 19 / 3
Регистрация: 23.09.2014
Сообщений: 285
|
||||||
| 29.11.2018, 23:00 [ТС] | ||||||
|
Ну да, думаю пока пойдет. Сегодня я не много поигрался с этой таблицей - массива данных
Для лучшего понимания разъясню: на верхний строке написан уровень вложенности элемента "Вложение 3 - элемент 1", на строке ниже идет сокращение "В3Э1" и далее описан уровень вложенности данного элемента Web программистам со слабой психикой там не кликать Кликните здесь для просмотра всего текста
INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '001', '000', '000', 'Вложение 3 - элемент 1');
INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '001', '001', '000', 'В3Э1 - Вложение 4 - элемент 1'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '001', '001', '001', 'В3Э1 - В4Э1 - Вложение 5 - элемент 1'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '001', '001', '002', 'В3Э1 - В4Э1 - Вложение 5 - элемент 2'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '001', '001', '003', 'В3Э1 - В4Э1 - Вложение 5 - элемент 3'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '001', '002', '000', 'В3Э1 - Вложение 4 - элемент 2'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '001', '002', '001', 'В3Э1 - В4Э2 - Вложение 5 - элемент 1'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '001', '002', '002', 'В3Э1 - В4Э2 - Вложение 5 - элемент 2'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '001', '002', '003', 'В3Э1 - В4Э2 - Вложение 5 - элемент 3'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '001', '003', '000', 'В3Э1 - Вложение 4 - элемент 3'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '001', '003', '001', 'В3Э1 - В4Э3 - Вложение 5 - элемент 1'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '001', '003', '002', 'В3Э1 - В4Э3 - Вложение 5 - элемент 2'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '001', '003', '003', 'В3Э1 - В4Э3 - Вложение 5 - элемент 3'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '001', '004', '000', 'В3Э1 - Вложение 4 - элемент 4'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '001', '004', '001', 'В3Э1 - В4Э4 - Вложение 5 - элемент 1'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '001', '004', '002', 'В3Э1 - В4Э4 - Вложение 5 - элемент 2'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '001', '004', '003', 'В3Э1 - В4Э4 - Вложение 5 - элемент 3'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '002', '000', '000', 'Вложение 3 - элемент 2'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '002', '001', '000', 'В3Э2 - Вложение 4 - элемент 1'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '002', '001', '001', 'В3Э2 - В4Э1 - Вложение 5 - элемент 1'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '002', '001', '002', 'В3Э2 - В4Э1 - Вложение 5 - элемент 2'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '002', '001', '003', 'В3Э2 - В4Э1 - Вложение 5 - элемент 3'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '002', '002', '000', 'В3Э2 - Вложение 4 - элемент 2'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '002', '002', '001', 'В3Э2 - В4Э2 - Вложение 5 - элемент 1'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '002', '002', '002', 'В3Э2 - В4Э2 - Вложение 5 - элемент 2'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '002', '002', '003', 'В3Э2 - В4Э2 - Вложение 5 - элемент 3'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '002', '003', '000', 'В3Э2 - Вложение 4 - элемент 3'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '002', '003', '001', 'В3Э2 - В4Э3 - Вложение 5 - элемент 1'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '002', '003', '002', 'В3Э2 - В4Э3 - Вложение 5 - элемент 2'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '002', '003', '003', 'В3Э2 - В4Э3 - Вложение 5 - элемент 3'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '002', '004', '000', 'В3Э2 - Вложение 4 - элемент 4'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '002', '004', '001', 'В3Э2 - В4Э4 - Вложение 5 - элемент 1'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '002', '004', '002', 'В3Э2 - В4Э4 - Вложение 5 - элемент 2'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '002', '004', '003', 'В3Э2 - В4Э4 - Вложение 5 - элемент 3'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '003', '000', '000', 'Вложение 3 - элемент 3'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '003', '001', '000', 'В3Э3 - Вложение 4 - элемент 1'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '003', '001', '001', 'В3Э3 - В4Э1 - Вложение 5 - элемент 1'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '003', '001', '002', 'В3Э3 - В4Э1 - Вложение 5 - элемент 2'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '003', '001', '003', 'В3Э3 - В4Э1 - Вложение 5 - элемент 3'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '003', '002', '000', 'В3Э3 - Вложение 4 - элемент 2'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '003', '002', '001', 'В3Э3 - В4Э2 - Вложение 5 - элемент 1'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '003', '002', '002', 'В3Э3 - В4Э2 - Вложение 5 - элемент 2'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '003', '002', '003', 'В3Э3 - В4Э2 - Вложение 5 - элемент 3'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '003', '003', '000', 'В3Э3 - Вложение 4 - элемент 3'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '003', '003', '001', 'В3Э3 - В4Э3 - Вложение 5 - элемент 1'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '003', '003', '002', 'В3Э3 - В4Э3 - Вложение 5 - элемент 2'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '003', '003', '003', 'В3Э3 - В4Э3 - Вложение 5 - элемент 3'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '003', '004', '000', 'В3Э3 - Вложение 4 - элемент 4'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '003', '004', '001', 'В3Э3 - В4Э4 - Вложение 5 - элемент 1'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '003', '004', '002', 'В3Э3 - В4Э4 - Вложение 5 - элемент 2'); INSERT INTO `db`.`array` (`id`, `1`, `2`, `3`, `4`, `5`, `text`) VALUES (NULL, '001', '178', '003', '004', '003', 'В3Э3 - В4Э4 - Вложение 5 - элемент 3'); Вот листинг sql, ну если кому интересно, для совсем пущей наглядности ![]()
SELECT `text` FROM `array` WHERE `1`='001' and `2`='178' and `3`<>'000' and `4`='000' and `5`='000' - получение элементов вложения 3, 178-го уровня второго вложения Думаю пойдет, работает быстро, легко менять элементы вложенности, достаточно только изменить индекс, да и удовлетворяет требованию "возможность одновременного редактирования несколькими пользователям" назову как я этот метод "Метод хранения и позиционирования массива данных N-конечной вложенности в базе данный для WEB извращенцев начального уровня" - ну типа для истории, должно быть длинно, непонятно, от которого студенты начнут медленно стекать под стол услышав только название
0
|
||||||
| 29.11.2018, 23:00 | |
|
Помогаю со студенческими работами здесь
4
Как лучше всего хранить контент сайта? Как лучше хранить большую корзину (больше 140-170 товаров)? Как лучше хранить массив в базе? Как лучше хранить картинку в базе ? Как лучше хранить(шифровать) секьюрные данные в базе? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
||||
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop?
Ниже её машинный перевод.
После долгих разбирательств я наконец-то вернула себе. . .
|
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод
Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод.
Thinkpad X220 Tablet —. . .
|
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта
Симптом:
После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
|
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
|
|
Новый ноутбук
volvo 07.12.2025
Всем привет.
По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне:
Ryzen 5 7533HS
64 Gb DDR5
1Tb NVMe
16" Full HD Display
Win11 Pro
|
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
|
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
|
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов
На странице:
https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/
нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
|
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов.
. . .
|