0

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 からすべてのデータをフェッチします。
4

1 に答える 1

1

それを行うのは特に悪い考えのように思えます。

  1. その場でテーブルを作成したくない
  2. すべてのデータがデータベースにある場合、そのファイルは何のためのものですか?

Office が使用するアプローチを選択したいと思います。

  1. ファイルは、実際には以下を含む zip アーカイブです。
    1. アセット(画像など)のフォルダ
    2. コンテンツとアセットへの相対リンクを含む実際のファイル。
于 2013-07-11T07:43:56.540 に答える