В рамках нашей текущей работы с базами данных мы рассматриваем процесс обновления баз данных.
Точка, которая поднималась периодически, - это отношение к системным или пользовательским ценностям; В нашем проекте пользовательские и системные значения хранятся вместе. Например ...
У нас есть список шаблонов.
1, <system template>
2, <system template>
3, <system template>
Они отображаются в приложении на enum (1, 2, 3)
Затем приходит пользователь и добавляет ...
4, <user template>
... и ...
5, <user template>
Тогда .. мы выпускаем обновление .. и вставляем как часть наших скриптов обновления ...
<new id> [6], <new system template>
ТО !! ... мы находим ошибку в новом системном шаблоне и нужно ее обновить ... Проблема в том, как? Мы не можем обновить запись, используя ID6 (поскольку мы могли вставить ее как 9 или 999, поэтому мы должны идентифицировать запись, используя какой-то другой механизм)
Итак, мы пришли к двум возможным решениям для этого.
В красном углу (скорость) ....
Мы просто запускаем идентификаторы пользователей с 5000 (или с другим значением) и тестируем данные с 10000 (или с другим значением). Это позволило бы нам вносить изменения в системные значения и проверять их до нижнего предела следующего диапазона идентификаторов.
Преимущество ... Быстрый и простой в реализации,
Недостаток ... может закончиться, если мы не выберем достаточно большой диапазон!
В синем углу (масштабируемость) ...
Мы храним, системные и пользовательские данные отдельно, используем идентификаторы GUID в качестве идентификаторов и объединяем два списка, используя представление.
Преимущество ... Масштабируемое ... Нет ограничений по размеру БД.
Недостаток. Сложнее в реализации. (многократные обновляемые представления и т. д.)
Я пухленько для первого варианта, но ищу боеприпасы, чтобы поддержать меня!
Есть ли у кого-нибудь какие-либо мысли по поводу этих подходов или хотя бы те, которые мы пропустили?