5

非常に小さなデータ セットの場合、私が作業するポリシーでは、通常、それらをテキスト ファイルに貼り付けますが、私の経験では、これは開発上の頭痛の種になる可能性があります。通常、データはデータベースから取得されます。そうでない場合、データの設定/保存に関連するプロセスは通常、コードに隠されています。データベースを使用すると、通常、利用可能なすべてのデータと、それが他のデータとどのように関連しているかを確認できます。

非常に小さなデータ セットの場合は、コード内の内部データ構造 (Perl ハッシュなど) に格納するだけですが、変更が必要な場合は、開発者の手に委ねられます。

では、変更頻度の低いデータの小さなセットをどのように処理するのでしょうか? データベース テーブル、テキスト ファイル、または..をいつ使用するかの基準を設定していますか?

絶対にすべてにデータベーステーブルを使用したくなるのですが、これに何らかの影響があるかどうかはわかりません。

編集:コンテキストについて:

少数の企業の Web サイトに新しい連絡先フォームを設置するように依頼されましたが、今後も随時追加される予定です。ただし、企業には連絡先の電子メール アドレスがありません。これらの企業内のユーザーは (自分のアカウントから求人を投稿するため) 持っています。ただし、「投機的アプリケーション」タイプの機能が必要であり、フォームにはこれらのアプリケーションを送信するための電子メール アドレスが必要です。しかし、メール アドレスをプロパティとしてフォームに入力したくもありません。そうしないと、スパマーがメール ゲートウェイとして使用する可能性があります。明らかに、企業との ID -> contact_email タイプの関係が必要です。

SO、文字通り、約20回使用される数百万行のテーブルに列を追加するか、最大で約20行を保持する新しいテーブルを作成できます。これまでの典型的な対処方法は、厄介なテキスト ファイルを作成してそこから読み取ることでした。しかし、これはメンテナンスの悪夢を引き起こし、これらのテキスト ファイルは、依存するデータが変更されると頻繁に見直されます。おそらくこれはプロセスの誤りですが、私はこれについて意見を聞くことに興味があります.

4

8 に答える 8

2

sqliteを検討しましたか?これはファイルベースであり、「ファイルだけで十分」(ゼロ構成)という感覚に対応しますが、完全に優れたデータベースであり、非常に優れた拡張性を備えています。多数のAPIをサポートし、それを管理するための多数のフロントエンドがあります。

于 2008-09-25T23:04:45.973 に答える
2

データベースに入れます。頻繁に変更されない場合は、中間層にキャッシュします。

于 2008-09-25T13:45:41.667 に答える
2

すぐに思いつく例は、列挙として保存するのが適切なものと、「ルックアップ」データベース テーブルに保存するのが適切なものです。

私は、列挙値にマップされる「マジック ナンバー」を含むデータベース内の列が生成される場合、列挙値はルックアップ テーブルとして実際に存在する必要があるというルールで「線を引く」傾向があります。データベースに保存されているデータとは関係がない場合 (たとえば、ユーザーが生成したデータではなく、アプリケーション構成データ)、それはすべて列挙です。

于 2008-09-25T13:46:26.737 に答える
2

確かに、サイズに関係なく、データ セットを消費するために開発したソフトウェア ツールのユーザーに依存しますか?

彼らが Excel を知っているだけかもしれないので、作成した .csv ファイルをツールで解析する必要があります。

もしそれが開発者向けに書かれているなら、あなたが何を使うか誰が気にするでしょう。ただし、マイナーまたは一時的なデータでデータベースを乱雑にするのは好きではありません。

于 2008-09-25T13:47:14.457 に答える
2

標準の構成ファイル形式 (key:value) とそれを処理するクラスがあります。すべてのプロジェクトでそれを使用するだけです。ほとんどの場合、アプリケーション (携帯電話の開発) の永続的なプロパティを設定しているだけなので、これは適切なことです。YMMV

于 2008-09-25T13:47:18.653 に答える
2

プログラムがデータベースにアクセスする場合は、そこにすべてを保存します。バックアップとデータの移動が簡単になります。

データベースにアクセスできない小さなプログラムの場合、データを .net 設定に保存します。これは xml ファイルに保存されます。もちろん、これは c# の機能であるため、適用されない場合があります。

とにかく、すべてのデータを 1 か所に保管するようにしています。通常はデータベース。

于 2008-09-25T13:51:32.277 に答える
1

メインテーブルのデータベースに追加します。

  1. バックアップと復元 (このテキスト ファイルを復元しますか?)
  2. アドホック クエリ (SQL ツールを実行して他のデータベース データに結合できるため)
  3. データベース列が空の場合、そのストア要件は最小限である必要があります (Oracle のテーブルの末尾にある NULL 列の場合は何もありません)。
  4. 複数のアプリケーションサーバーが必要な場合は、追加の構成ファイルの複数のコピーを保持する必要がないため、簡単になります。
  5. それを小さな子テーブルに入れると、設計が複雑になるだけで、実際のメリットはありません

いずれにせよ、処理の一部としてデータベース内の同じ行にすでに移動している可能性があるため、パフォーマンスが問題になる可能性はほとんどありません。そうでない場合は、メモリにキャッシュできます。

于 2008-09-25T22:33:20.260 に答える
1

これらが構成のような小さなデータである場合、単純で一般的な形式を使用します。通常、ini、json、yaml は問題ありません。Java と .NET のファンも XML を好みます。要するに、メモリ内オブジェクトに簡単に読み取れるものを使用して、それを忘れてください。

于 2008-09-25T15:08:08.647 に答える