при сохранении ресурса, нужно записать его в БД в формате: id сохраняемого ресурса - id из списка. При этом если id в списке нет, а в БД есть, запись из базы надо удалить. Конкретный пример. Есть Главная (1) и есть разделы с новостями Политика (2)
Экономика (3)
Спорт(4). У главной есть ТВ list где записаны id тех разделов которые на главной надо выводить. Допустим изначально list = 2,3,4 и в БД есть записи
1 - 2
1 - 3
1 - 4.
Затем я удаляю из list id = 4. И мне нужно удалить из БД запись 1 - 4. Самый простой вариант который пришел мне в голову, удалить все записи где есть 1 и сделать новые, но это как-то топорно, есть вариант лучше? При этом если я вместо 4 запишу 5 то в БД надо добавить запись 1-5
смею предположить, что для хранения списка ресурсов лучше было бы использовать поле в базе типа enum и тогда при сохранении просто обновлять 1 поле (будет и удалять и записывать и тд)
Понял, надо было это уточнить. Мне нужно будет в сниппет получать список ресурсов которые используют тот или иной раздел новостей. Т.е. разделы будут выводиться не только на главной но и на других страницах
я бы использовал json формат хранения с ним и в сниппете работать просто и обновлять придется всегда 1 запись
В бд кастомная таблица?
А как я из json получу список всех ресурсов которые используют раздел Политика, например?
Да два поля master и slave
А для каждого отдельная запись делается? Или в slave через запятую перечисляются?
меняем немного структуру хранения json "id"-"Тэг (политика например)", ... и потом %Like% загрузка конечно будет большая
А что если делать одну запись для ресурса и в slave через запятую перечислять? Тогда можно просто при сохранении получать значение slave, конвертировать в массив и делать array_intersect с текущим
там выше уточнение есть же, про получение списка всех ресурсов которые исользуют какой-либо раздел)
а, я чет проспал его
Тот же вопрос, как получить обратный список, т.е. для раздела Новости получить всех кто его использует?
поэтому вариант оставить как есть, и делать delete insert
Ну ок, в принципе он самый простой 😁
ааа, ну тогда да)
Обсуждают сегодня