|
9 / 9 / 1
Регистрация: 04.07.2012
Сообщений: 218
|
|
Как лучше хранить массив в базе?11.08.2015, 09:15. Показов 1410. Ответов 16
Метки нет (Все метки)
Блин, так не хотелось новую тему открывать.. Вопрос пустяковый, собсно.
Есть табличка в две колонки (номер | человеческое название). Я хочу сформировать выборку из нескольких элементов и сохранить её в базе на будущее. В каком виде её записать? [sqlite/firedac]
0
|
|
| 11.08.2015, 09:15 | |
|
Ответы с готовыми решениями:
16
Пятиуровневый массив в базе - как лучше хранить? |
|
4217 / 3059 / 583
Регистрация: 21.01.2011
Сообщений: 13,203
|
|
| 11.08.2015, 09:29 | |
|
1
|
|
|
|
|
| 11.08.2015, 10:50 | |
|
1. можно сохранять условие фильтрации и восстанавливать рекордсет по запросу
2. можно завести таблицу2 , где достаточно хранить всего лишь ID из таблицы1 3. если фильтров несколько, то появляется таблица3 - справочник фильтров и в таблице2 еще одно поле - ID фильтра
1
|
|
|
9 / 9 / 1
Регистрация: 04.07.2012
Сообщений: 218
|
|||
| 11.08.2015, 12:22 [ТС] | |||
|
0
|
|||
|
9 / 9 / 1
Регистрация: 04.07.2012
Сообщений: 218
|
||
| 11.08.2015, 15:14 [ТС] | ||
|
Добавлено через 17 минут Или я не то имею в виду. Фильтрация - это где? Как её сохранять?
0
|
||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 11.08.2015, 15:27 | |
|
А что, Ваша БД запросы сохранять не умеет? TSQLQuery тогда, текст запроса сохраняешь как запись в ещё одной таблице, когда нужна старая выборка, то читаешь из таблицы текст запроса, скармливаешь его TSQLQuery, получаешь выборку. Или речь о том, что сами данные могли за это время измениться, а надо показать выборку именно в том виде, какой она бала тогда? То есть могли добавиться новые удовлетворяющие условию записи, или ранее существовавшие, но не удовлетворявшие условию могли стать удовлетворяющими условию, но показать старую выборку надо без них, в ранее отобранных полях могли измениться отображаемые данные и надо отобразить со старыми данными, ранее удовлетворявшие условию записи могли быть удалены, или перестать удовлетворять условию, но их всё равно надо показать? Тогда придётся сохранять в специальную таблицу. С одним, или несколькими дополнительными полями с информацией о выборке. Например, с датой и временем, состояние на которые сохраняется.
0
|
|
|
9 / 9 / 1
Регистрация: 04.07.2012
Сообщений: 218
|
||
| 11.08.2015, 16:18 [ТС] | ||
|
Наверное, выше названые варианты наиболее оптимальны. В смысле, что других нет, кроме костыльных
0
|
||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||||||
| 11.08.2015, 16:31 | ||||||
|
Не важно, как и кем/чем условие проверяется. Как только галочки расставлены, можно составить запрос на выборку по условию, эквивалентному тому, по которому расставлены галочки. Например
0
|
||||||
|
9 / 9 / 1
Регистрация: 04.07.2012
Сообщений: 218
|
|
| 11.08.2015, 16:46 [ТС] | |
|
С новыми. И всё-таки, я настаиваю, слово "выборка" здесь имеет другое значение. Это не результат работы select, не набор кортежей. Это массив чисел. Из этого массива можно формировать столько select-ов (разных), сколько потребуется. Если нужно будет выбирать не только из FROM tab, а ещё и FROM tab2? Если нужно будет добавить к 1, 10 и 25 ещё 26? Парсить и менять сохранённый запрос? Не, так не пойдёт..
0
|
|
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|||||||||||
| 11.08.2015, 16:54 | |||||||||||
|
Есть твоя база, в ней таблица, а в ней какие то записи. Это не выборка, а сама генеральная совокупность. Любая её часть - выборка. Не зависимо от того, как она получена, хоть запросом, хоть вручную. А вот числа - это уже не выборка, так как не из них состоит совокупность, из которой отбираешь. Но раз с новыми, то иди по строкам, проверяй галочку и как только где то стоит, так сразу кладёшь Id нужной строки в переменную IdValue и
0
|
|||||||||||
|
9 / 9 / 1
Регистрация: 04.07.2012
Сообщений: 218
|
||
| 11.08.2015, 17:03 [ТС] | ||
|
Если серьёзно, я скорее всего сделаю, как krapotkin написал, потому что лучших вариантов нет, а поля типа set или array в sql - ох и ах - не предусмотрено.
0
|
||
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
||
| 11.08.2015, 17:20 | ||
|
Там есть блоб. Но эти извращения и не нужны, так как тебе так и так надо сгенерить запрос, а он текстовый.
Добавлено через 5 минут
0
|
||
|
9 / 9 / 1
Регистрация: 04.07.2012
Сообщений: 218
|
|
| 11.08.2015, 17:28 [ТС] | |
|
Слишком хитромудро. Делать из цифер запрос, выполнять его, вычитывать и получать снова цифры. Если бы я увидел такое в чужой программе... В общем, выражение "умыть глаза святой водой" как раз сюда))
0
|
|
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 11.08.2015, 17:41 | |
|
Ну а что здесь ещё можно придумать? Есть запрос, в него надо толи вручную добавить часть условий, а часть удалить, толи только часть добавить, то ли только часть удалить. Для этого надо увидеть таблицу с уже расставленными как раньше галочками и, отталкиваясь от них, внести изменения. Для этого придётся парсить запрос, но для получения не индетификаторов, а самих записей, значит парсить должна БД. А потом надо автоматически восстановить галочки. Это не святая вода, это требование. И его придётся выполнить.
0
|
|
|
9 / 9 / 1
Регистрация: 04.07.2012
Сообщений: 218
|
|
| 11.08.2015, 17:51 [ТС] | |
|
taras atavin, спасибо)) Вашей настойчивости и энергии можно позавидовать))
Но я воспользуюсь решением из начала топика, там не придётся ничего парсить.
0
|
|
|
4226 / 1796 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
|
|
| 11.08.2015, 17:54 | |
|
1. Это только кажется.
2. А самому тебе и так не придётся ничего парсить.
0
|
|
| 11.08.2015, 17:54 | |
|
Помогаю со студенческими работами здесь
17
Как лучше хранить картинку в базе ? Как лучше хранить(шифровать) секьюрные данные в базе?
Как лучше хранить массив? Как лучше всего хранить двумерный массив переменного размера Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|
|
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ *
Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях.
Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её.
Последовательность действий:. . .
|
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
|
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение.
И на уровне агентов добавится между грибами или бактериями взаимодействий.
До того я пробовал подход через многомерные массивы,. . .
|
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Налог на собак: https:/ / **********/ gallery/ V06K53e
Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf
Пост отсюда. . .
|