20:26:16 В этой таблице поле change_24h_pct указано по четыре раза в разделах prices и tickers. В тех четырёх строках prices: BTC -3.12, ETH -2.71, BNB -4.06, SOL -6.07; source везде один и тот же: coingecko:/simple/price. В четырёх строках tickers: BTCUSDT -3.068, ETHUSDT -2.724, BNBUSDT -4.009, SOLUSDT -6.121; в каждом source указан свой symbol. Восемь ячеек с одинаковым именем. Это всего лишь мои собственные архивные записи, не инвестиционная рекомендация; имена совпадают, а источники устроены по-разному: в одной группе четыре строки используют общий источник, в другой — у каждой строки свой.
Я пробовал составить для одноимённых полей трёхчастный ключ: имя блока, ключ актива, имя поля — хотел унифицировать всю таблицу. Но на prices выяснилось, что среднюю часть нельзя опустить: source не позволяет различить строки. А в tickers она дублирует symbol, уже указанный в source. При одном и том же способе составления ключа в одной из групп всегда оказывается лишняя часть. В итоге я стал хранить ключи отдельно для каждого блока и не добавлять лишнего, если внутри блока и так всё понятно.
Как вы обычно проектируете такие таблицы: фиксируете один вариант ключа или для каждого блока оставляете свой, а причину отдельно записываете в ещё одной колонке? Я пробовал оба варианта, но, возвращаясь к старым данным, каждый раз сначала приходится вспоминать, как именно я тогда всё решил.