MySQL データベースから多数の個々のデータを収集し、このデータを XML ドキュメントにシリアル化するプログラムを作成しています。
私の XML ドキュメントには 5 つの基本グループがあり、それぞれに 3 つのサブグループが含まれており、合計で約 100 個のデータを収集しています。
コンテンツ自体は、ショッピング サイトでの注文の詳細です。最初にクエリを実行して、クライアントに送信する必要がある次の注文 ID を返します。次に、この注文 ID を使用して、各データ (住所行 1、住所行 2、購入したアイテムなど) を元に戻します。リレーショナル データベースのさまざまなテーブル。
これはどう考えても面倒くさい。最終的には、必要なデータごとに 1 つの変数が定義された大量のメソッドになり、各変数は、MySQL データベースに対してクエリを実行するメソッドの戻り値と等しくなります。一部のデータには追加のロジックを適用する必要があります (たとえば、一部のデータを消去する必要がある、一部の日付を XML 用に特定の方法でフォーマットする必要がある)。
いくつかのポイント
- データベース構造やショッピング サイトを作成していないため、変更できません
- 現在実行中の作業プログラムがあります。これは私が数ヶ月前に書いたプログラムであり、改善するために戻ってきます
以下にコード例を示します。
string valueOne = myMethod("SELECT `valueOne` FROM `tableOne` WHERE `OrderID` = '12345';");
string valueTwo = myMethod("SELECT `valueTwo` FROM `tableOne` WHERE `OrderID` = '12345';");
string valueThree = myMethod("SELECT `valueThree` FROM `tableTwo` WHERE `OrderID` = '12345';");
int valueFour = Convert.ToInt32(myMethod("SELECT `valueFour` FROM `tableThree` WHERE `OrderID` = '12345';"));
string valueFive = myMethod("SELECT `valueFive` FROM `tableThree` WHERE `OrderID` = '12345';");
if(valueFive == "FooBar")
{
//Do Stuff
}
string valueSix = myMethod("SELECT `valueSix` FROM `tableThree` WHERE `OrderID` = '12345';");
DateTime valueSeven = DateTime.Parse(myMethod("SELECT `valueSeven` FROM `tableFour` WHERE `OrderID` = '12345';"));
string valueEight = myMethod("SELECT `valueEight` FROM `tableFive` WHERE `OrderID` = '12345';");
string valueNine = String.Format("QWERTY - {0} - YTREWQ", myMethod("SELECT `valueNine` FROM `tableSix` WHERE `OrderID` = '12345';"));
string valueTen = myMethod("SELECT `valueTen` FROM `tableSeven` WHERE `OrderID` = '12345';");
MyClass fooBar = new MyClass()
{
valueOne = valueOne,
valueTwo = valueTwo,
valueThree = valueThree,
valueFour = valueFour,
valueFive = valueFive,
valueSix = valueSix,
valueSeven = valueSeven,
mySecondClass = new MySecondClass()
{
valueEight = valueEight,
valueNine = valueNine,
myThirdClass = new MyThirdClass() { valueTen = valueTen }
}
};
SerializeToXML<MyClass>(fooBar);
想像してみてください。ただし、さらに多くのデータが必要です。はい、機能しますが、乱雑で、保守が難しく、より一般的にはあまり良くありません。
私の質問は、.Net アプリケーションで大量のデータを収集する適切な方法は何ですか?