CONTEXT : Visual C# / .Net でアプリケーションを作成しています。ユーザーは次のことができます。
- 新しいドキュメント ファイル「Untitled.abc」を作成します。
- 画像、テキストなどのデータ/コンテンツを追加します。
- ドキュメント ファイルを「MyDoc7.abc」として保存します。ここで、abc はアプリ固有の拡張子になります。
質問: 次の方法は上記を実装するのに適していますか、それともよりシンプルでクリーンなアプローチがありますか?
- MyDb と呼ばれる SQL-Server データベースから始めます。
- ユーザーが新しいドキュメント ファイルを作成するたびに、プログラムで新しい DB テーブルを MyDb に追加します。
- 新しく作成された DB テーブルには、ユーザーが作成した特定の対応するドキュメント ファイルからのデータ/コンテンツが格納されます。
- ユーザーが保存したドキュメント ファイルを後で再度開くと、対応する DB テーブルからデータ/コンテンツをプログラムで読み取ります。
更新:解決しました。この代替アプローチを使用します。
- FileId という列を含む、MyTable というテーブルを持つ MyDb という SQL Server データベースから始めます。
- ユーザーが新しいドキュメント ファイルを作成するたびに、そのファイルに一意の ID (FileId = 5 など) を割り当てます。
- ユーザーがファイルにデータ/コンテンツを追加すると、データの一部を MyTable に保存しますが、そのデータの FileId = 5 も保存します。
- 将来、ユーザーがファイルを再度開いたときに、FileId = 5 の MyTable からすべてのデータをフェッチします。