0

私は初心者のプログラマーです。理論的な知識は豊富ですが、実践は遅れています。わかった。ファイルにカテゴリと説明を追加するためのプログラムを作成しようとしています。言語は C# で、Windows 7 で動作するはずです...

1.カテゴリにはサブカテゴリを含めることができます。

これらは異なるため、「タグ」とは呼びたくありません。カテゴリは、fx「お気に入り」にすることができます。ただし、「お気に入り->音楽->2013」の場合もあります。サブカテゴリを作成できます。ユーザーがサブカテゴリで実行できるすべての操作に、WinForm で TreeView を使用します。

質問: カテゴリに XML ファイルを使用する必要がありますか?

2.すべてのファイルには、説明と 1 つまたは複数のカテゴリを含めることができます。でも:

  • ファイルが削除されても、後で使用できるように、その説明を保持したいと考えています。
  • フォルダ自体は省略されます。フォルダ自体には、カテゴリや説明を含めることはできません。しかし、含まれているファイルはYESです。

1 つのテーブルを含む非常に単純な SQL Server データベースを作成しました。http://img832.imageshack.us/img832/3931/finalprojectdb.png

質問: これは良い考えですか? たぶん、カテゴリ列は XML 型の方が良いでしょうか?

この状況で最善のアプローチがどうあるべきかについてのアドバイスは大歓迎です。前もって感謝します !

4

2 に答える 2

0

XML は、クロス プラットフォーム (C# から Java など)、またはクロス インターネット、またはクロス ネットワークで通信する必要があるアプリに最適な設計です。しかし、データをサブセットとしてテーブルに格納する方法としては、そうではありません。

正規化されたデータベースは素晴らしいツールです。インデックスを作成できます (xml はできません)。これにより、データの迅速なクエリが可能になります。列のクエリに xml を埋め込んでデータを非正規化すると、処理が遅くなり、更新や維持が面倒になります。

個人的には外部キーテーブルの方が好きです。

于 2013-04-11T21:15:07.797 に答える
0

SQL は、ネストされたデータを一度に取得するには適していません。物事を XML に格納できるため、柔軟性が高くなりますが、そのためのパーサーまたはデシリアライザーも作成する必要があります。最近では、小さな Javascript クラスを作成し、Newtonsoft などを使用して自動的に逆シリアル化することもできます。

DB ソリューションが必要な場合、データベースを個別にインストールしたくない場合は、アプリケーションに埋め込まれた SQLite のようなものを使用できます。

于 2013-04-11T21:14:34.680 に答える