Firebase: хорошая идея использовать дизайн таблицы измерений / фактов в NoSQL - PullRequest
0 голосов
/ 06 июля 2019

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

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

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

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

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

1 Ответ

1 голос
/ 06 июля 2019

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

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

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

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

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

...