0

私のWebアプリケーションのユーザーに、次の形式でバルクデータを送信するように要求する予定です。

BatchID:1
TotalRecords:200

Cust:CustID~FirstName~LastName~Age~Dob~City~State~Country
1~John~Abraham~35~10/10/1974~New York~NY~US

Order:OrderID~CustID~Qty~Amount~DOS
1~1~10~100.00~1/1/2012
2~1~100~1000.00~1/1/2012
1~1~10~100.00~1/1/2012

OrderDet:OrderDetID~OrderID~Reg1~Remarks
1~1~12393A~Testing order
2~1~23123B~tesitng order 1

上に表示されているのは、単なるレコードのセットです。1つのフラットファイルには最大200個のファイルが含まれます。

これが正しいやり方だと思いますか?ユーザーがWebサイトから一度に各レコードを入力する必要がないように、バッチアップロードを許可する必要があります。

あなたが大いに役立つ他のフォーマットを考えることができるなら

4

4 に答える 4

2

新しいプロジェクトにはXMLを使用することを強くお勧めします。データに何らかの階層があるようです(たとえば、顧客には注文があります)。これらの関係を自然に反映できるため、XMLの使用を強力にサポートします。

何らかの理由でユーザーがそれを実行できない場合でも、CSVは非常に広く使用されており、〜で区切られたファイルよりもはるかに優れたツールサポートがあります(たとえば、ExcelからCSVに保存できます)。

経験から、誰かの注文の説明には、いつか〜文字が含まれることがわかります。私はかつてパイプ(|)を区切り文字として使用している会社で働いていました。誰かが彼の会社に名前を付けることを考えるまで、うまくいきましたAcme ||

于 2012-06-10T03:48:40.100 に答える
1

スキーマが定義されたXMLは良い選択です。

あなたのフォーマットに手に負えないいくつかの問題:

  • コメントに〜が含まれている場合はどうなりますか?例えば。テスト備考。これを逃れる方法は?
  • アプリケーションのユーザーはすべて同じロケールにいますか?彼らは皆、月/日/年として日付を入力することを期待しますか?それとも日/月/年になりますか?これらのUTC日付ですか?
  • ユーザーが「無効な」データを入力したかどうかをすばやく判断する必要がありますか(たとえば、必須フィールドがありませんか?)

ユーザーがアップロードしているものを検証するのに役立つよく知られたXMLツールがあります。検討する価値があります...

私はCSVの大ファンではありませんが、少なくともCSVを操作するためのよく知られたツールがあります。ただし、覚えているように、CSV形式にはいくつかのバリエーションがあります。たとえば、カンマをエスケープする方法は?文字列フィールドを二重引用符で囲むことによるものですか。「私の1番目、2番目、3番目」などを使用してい\,ますか?等

于 2012-06-10T03:51:45.680 に答える
0

一般に:

  • 送信者と受信者の両方が同じテクノロジを使用する場合(たとえば、Microsoft SQL Serverへの一括インポート)、最適なパフォーマンスを提供するテクノロジ固有の形式を使用します。

  • 最大限の柔軟性が必要な場合は、XMLが最適です。一致するXSchemaを作成し、エクスポートとインポートを検証することも悪い考えではありません。

  • それ以外の場合は、「機能するものは何でも」。CSVは、データがシンプルで家庭的なテーブル形式に適している場合に人気があります。

すべてが同じであれば、私はおそらく「XML」に投票するでしょう。

私見..PSM

于 2012-06-10T03:53:47.940 に答える
0

誰もJSONを言っていないことに気づきました。したがって、実際のCSVが適用できない場合は、JSONを使用してください。XMLよりもきれいで短いです。また、ユーザーがカスタム形式を理解することを期待している場合は、XMLスキーマに適したエディターがなくてもJSONを確実に処理できます。

于 2012-06-10T04:21:04.220 に答える