хранение конфигурации фильтров на sqlite в формате json (nodejs) - PullRequest
0 голосов
/ 05 ноября 2019

У меня есть веб-сервер nodejs, работающий с Express и sqlite. Но теперь мне нужно хранить все фильтры моих таблиц, деревьев, комбо, чеков, радиоприемников и т. Д. В каждой секции их около двенадцати и около восьми секций. Я должен сохранить эти выборки в соответствующей строке пользователя в таблице пользователей и обновлять их, когда они были изменены.

Идея состоит в том, чтобы сохранить его в формате строки JSON

JSON.stringify(config);

, но я думаю, чтоможет быть плохой практикой. Есть ли лучший способ сделать это? или это не плохой вариант?

1 Ответ

1 голос
/ 06 ноября 2019

Идея заключается в том, чтобы сохранить его в строковом формате JSON

Перейти на это! Одной из причин не беспокоиться об эффективности является синергия, возникающая в результате:

1) поддержки SQLite индексов в выражениях https://www.sqlite.org/expridx.html

2) json_extract

Это означает, что вы можете добавлять индексы для столбцов JSON, не прибегая к дополнительным столбцам.

Пример

CREATE TABLE test (tags JSON);
CREATE INDEX test_idx ON test(JSON_EXTRACT(tags, '$.someKey'));

При наличии вышеуказанной инфраструктуры запросы, такие какбудет оптимизировано:

SELECT * FROM test WHERE JSON_EXTRACT(tags, '$.someKey')="xyzzy";

Примечание по терминологии

Фраза "строка JSON" может легко привести к путанице, так как она может относиться к тексту JSON (например, [1,"a"]). ) или объект JSON, представляющий собой строку (например, "a"). В SQLite обычно требуется хранить тексты JSON, которые, конечно, могут быть строками JSON.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...