Вот некоторые из моих параметров:
Код: Выделить всё
firmIds = 'firm2,firm3,firm4';
tags = 'tag1,tag2';
participants='user1,user2,user3';
Код: Выделить всё
final firms = firmUid.split(',');и иногда мне нужно сделать что-то вроде:
Код: Выделить всё
SELECT category, COUNT(DISTINCT serialNumber)
FROM inspects
WHERE ...
GROUP BY category
ORDER BY count DESC
LIMIT 5;
Один из возможных подходов — получить все записи, разделить строки идентификаторов фирм во Flutter, объединить их в список и посчитать их в цикле.
Но меня это беспокоит. было бы медленно для тысячи (или десятки тысяч) записей.
Мои вопросы:
Для растущей таблицы (возможно, 10–100 тыс. строк) приемлемо ли по-прежнему использовать значения, разделенные запятыми, и FIND_IN_SET() в SQL-запросах?
ИЛИ
Должен ли я вместо этого создавать отдельные таблицы нравится:
Код: Выделить всё
inspects_firms(inspect_id INT, firmIds VARCHAR(100));
inspects_tags(inspect_id INT, tag VARCHAR(100));
inspects_participants(inspect_id INT, participantUid VARCHAR(100));
Стоит ли нормализовать все эти поля, разделенные запятыми, или я могу оставить их как есть для удобства и нормализовать только наиболее критичные к производительности поля?>
Подробнее здесь: https://stackoverflow.com/questions/797 ... cipants-in
Мобильная версия