Firebase: стоит ли использовать дизайн таблиц измерений / фактов в NoSQL?

Так что мне было интересно, у меня есть один недостаток NoSQL: если мое внешнее приложение когда-либо радикально изменится, мне будет ужасно время переделывать мою базу данных. Это связано с тем, что при разработке NoSQL в первую очередь учитывается внешний интерфейс. Итак, если передняя часть меняется, меняется и бэкэнд (по крайней мере, это общая идея)

Итак, моя идея заключается в том, было бы разумно хранить все мои ОРИГИНАЛЬНЫЕ / ЧИСТЫЕ копии документов в нескольких корневых коллекциях. А затем создайте коллекции «представлений», которые будут вызывать мои приложения. Что мне нравится в этом, так это то, что мои данные всегда являются "SQL" в корневом каталоге, если мне когда-либо понадобится изменить мой внешний интерфейс. Но на самом деле мои «просмотры» - это то, что будет использовать мое приложение.

Это очень похоже на таблицы измерений / справочных таблиц и таблицы фактов, которые используют люди.

Еще раз важная причина для этой идеи: если мой интерфейс резко изменится, тогда мне нужно будет проделать серьезную работу по преобразованию этих «представлений» в другие «представления». Где, как я предполагал, вы бы просто удалили свои старые «представления» и создали новые «представления», используя справочные таблицы «sql» / «root».

Я понимаю? :) Я не использовал NoSQL (но сейчас я что-то создаю с его помощью, так что мой мозг все еще борется с SQL для NoSQL, ха-ха). Так что, если это «чувак, не беспокойся об этом», тогда ты тоже можешь дать это в качестве ответа, ха-ха


person Paul Kruger    schedule 06.07.2019    source источник


Ответы (1)


Ага, это действительно довольно распространенный подход. В недавних ответах о моделировании данных NoSQL я начал явно называть это:

  1. Убедитесь, что у вас есть единая точка определения для каждой сущности / значения.
  2. Убедитесь, что все другие вхождения этого же значения происходят от # 1.

Помня об этих двух аспектах, разветвление / дублирование данных - довольно простой процесс (буквально: поскольку он однонаправленный), и его можно легко переделать, удалив производные данные и повторно запустив процесс разветвления.

Несколько полезных указателей, чтобы узнать больше о моделировании данных NoSQL:

И эти предыдущие вопросы:

person Frank van Puffelen    schedule 06.07.2019
comment
Фрэнк, ты потрясающий :) Спасибо! - person Paul Kruger; 06.07.2019
comment
Извините, был очень занят, когда смотрел его, поэтому не подумал об этом или по какой-то причине - person Paul Kruger; 08.07.2019