powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вопрос по алгоритму
2 сообщений из 2, страница 1 из 1
Вопрос по алгоритму
    #38006616
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делаю скрипт на Perl, который работает с внешним сервисом через API.
Для нормальной работы нужно закешировать часть данных сервиса; кешируются таблицы сущностей, а также таблицы связей.
Например есть сущности profile и media со своим набором атрибутов. Также есть таблица profile_media, в которой определены связи (поля profile_id и media_id), а также некоторые дополнительные атрибуты (index, disabled).
Все три таблицы у меня закешированы, первые две в виде хеша массивов (rows = { id1=>@row1, id2=>@row2, ... }), третья в виде массива массивов (rows = [ @row1, @row2, ... ]).
Из третьей таблицы я хочу получить два хеша, чтобы было удобно проверять наличие связей:
$profile_link->{$profile_id}->{$media_id} = [$index,$disabled]
$media_link->{$media_id}->{$profile_id} = [$index,$disabled]

Как бы вы это сделали?

________________________
Мы смотрим с оптимизмом...
...в оптический прицел.
...
Рейтинг: 0 / 0
Вопрос по алгоритму
    #38006622
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мои предложения.

1. Цикл по всем таблицам.
2. Для каждой таблицы получить список FK. Количество FK будет определять вложенность хешей.
3. Если FK в таблице отсутствуют, то переход к следующей итерации цикла.
4. Использовать рекурсивную функцию вида &filter($href_dataset,$filter,$href_result), которая будет группировать $href_dataset по полю $filter, результат сохранять в href_result и вызывать рекурсию, передавая $href_result в качестве $href_dataset. Чтобы избежать зацикливания, из $href_dataset будут исключены элементы, соответствующие $filter.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Вопрос по алгоритму
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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