Size: a a a

Programming Offtop

2021 April 09

PD

Phil Delgyado in Programming Offtop
Хм, искать умеет. Отсутствие - это надо или через метаинформацию или через null.
Миграция - через метаинформацию, конечно.

Запись в firebase в коде как представлена? Как какой-то класс или все на js?
источник

KD

Konstantin Dovnar in Programming Offtop
>Отсутствие - это надо или через метаинформацию или через null.

Не понял о какое метаинформации речь.
А через null не умеет. Если у документа нет условного поля field, то никаких проверок оно не пройдет, сразу же отправляя документ в утиль.

>Запись в firebase в коде как представлена?

Map из имён полей в значения.
источник

PD

Phil Delgyado in Programming Offtop
Ну так у вас в коде уже бардак, этот бардак плавно переходит в систему хранения.
Заведите нормальные классы в коде.
Или наследуйте их от базового, где будет schemaVersion или включайте их в какой-нибудь StorageObject<MyClass>
Добавьте какую-нибудь библиотеку валидации для классов при чтении/записи
Напишите код, который выбирает все записи с одной версией и обновляет на актуальную схему.
источник

PD

Phil Delgyado in Programming Offtop
Любые изменения структуры - только через написание миграций.
И так далее
источник

VP

Vladimir Petrakovich in Programming Offtop
Лол. Schemaless, который мы заслужили.
источник

VP

Vladimir Petrakovich in Programming Offtop
Вообще обычно в документоориентированной бд так: нет поля - да и хер с ним
источник

PD

Phil Delgyado in Programming Offtop
Ну да, schemaless - бесполезная (вредная) штука в реальной жизни )
источник

KD

Konstantin Dovnar in Programming Offtop
Это нужно переварить.

Всё ещё — у этой всей прелести нет какого-то наименования? На реальных примерах понимание приходит быстрее.
источник

KD

Konstantin Dovnar in Programming Offtop
Да, но беда в том, что тогда всю фильтрацию нужно переносить на клиента, а это может быть больно.
источник

PD

Phil Delgyado in Programming Offtop
Не знаю, я по опыту сам все собирал, но оно же очевидно довольно.
источник

PD

Phil Delgyado in Programming Offtop
Доклад делал про PG, но он вполне универсален, думаю...
источник

KD

Konstantin Dovnar in Programming Offtop
Возможно оно очевидно, если разбираться в теме.
Я, к сожалению, дальше 3НФ не залезал в работу с БД.
источник

PD

Phil Delgyado in Programming Offtop
Так это же не про БД, это про работу с данными. Нет особой разницы между поддержкой версионирования схем данных в БД или в API.
Всюду примерно одно и то же.
источник

VP

Vladimir Petrakovich in Programming Offtop
Так в nosql можно забыть про НФ, там другие подходы обычно
источник

PD

Phil Delgyado in Programming Offtop
(впрочем, уметь работать с измененными структурами в API обычно у всех получается еще хуже...)
источник

PD

Phil Delgyado in Programming Offtop
Да и реляционках 3НФ уже не так актуальна.
источник

KD

Konstantin Dovnar in Programming Offtop
Да, я понимаю.
Просто как пример привёл уровень знаний по теме.
источник

PD

Phil Delgyado in Programming Offtop
Но вообще все дополнительные данные можно воспринимать как одно поле "extension" и поддерживать 3НФ для остальных данных.
Ну а этот extension - как раз отдельно версионировать. Тоже работающая схема.
источник

d

dimiii in Programming Offtop
Я те больше скажу, это с французского - петух. Тут со всех сторон обиженные
источник

VP

Vladimir Petrakovich in Programming Offtop
Зацени redox
источник