現在のデータベース作業の一環として、データベースの更新プロセスを検討しています。
繰り返し提起されてきたポイントは、システムとユーザーの価値観を扱うことです。プロジェクトでは、ユーザーとシステムの値が一緒に保存されます。例えば...
テンプレートのリストがあります。
1, <system template>
2, <system template>
3, <system template>
これらはアプリで列挙型(1、2、3)にマップされます
次に、ユーザーが入って追加します...
4, <user template>
...と...
5, <user template>
次に、アップグレードを発行し、アップグレードスクリプトの一部として挿入します。
<new id> [6], <new system template>
次に!!...新しいシステムテンプレートにバグが見つかり、それを更新する必要があります...問題はどのようにですか?ID6を使用してレコードを更新することはできません(9または999として挿入した可能性があるため、他のメカニズムを使用してレコードを識別する必要があります)
したがって、これには2つの可能な解決策があります。
赤いコーナー(スピード)で...
ユーザーIDを5000(または他の値)で開始し、データを10000(または他の値)でテストするだけです。これにより、システム値を変更して、次のID範囲の下限までテストすることができます。
利点...すばやく簡単に実装でき、
短所...十分な大きさの範囲を選択しないと、値が不足する可能性があります。
青いコーナー(スケーラビリティ)...
システムデータとユーザーデータを別々に保存し、GUIDをIDとして使用し、ビューを使用して2つのリストをマージします。
利点...スケーラブル..DBサイズに関する制限はありません。
短所..実装がより複雑です。(多くから1つの更新可能なビューなど)
私は最初の選択肢を真っ向から探しますが、私をバックアップするための弾薬を探しています!
誰かがこれらのアプローチについて何か考えを持っていますか、あるいは私たちが見逃したものさえありますか?