0

私は目的を学習するためのラップトップクラスとデータベース内のいくつかのテーブルを持っています:プロデューサー、色、辞書テーブル(ID、名前など)であるタイプ、および実際のラップトップテーブル。

私のラップトップテーブルは次のようになります。

MODEL | PRODUCER | COLOR | TYPE
-------------------------------
ABC1  |     1    |   2   |   1
XYZ   |     2    |   1   |   1

他のテーブルは次のようになります (たとえば、色のテーブル):

ID | NAME
---------
1  | red
2  | green

私のクラス属性は次のとおりです。モデル - 文字列、プロデューサー - int、色 - int、型 - int。

私の問題は、db からラップトップ オブジェクトを取得し、それらを取得する方法でそれらをコンボ ボックスに入力したい場合、実際には人間に優しくないことです。これらすべての int を db の文字列に変換して、このようなものを取得したいと考えています。

ABC1 - デル - ブラック - 標準 - 30$

この問題にアプローチするには?特別な方法?特別クラス?十分に説明したことを願っています。ありがとう。

編集

わかりましたので、ラップトップオブジェクトを取得するときに明確にするために、単純な選択クエリを使用しますselect model, producer, color, type from laptop 。その結果、モデル文字列と残りの属性を int として含む行を取得し、オブジェクトを作成します。joinselect laptop.model, producer.name, color.name, type.name from ... laptop join producer on laptop.producer = producer.id ...などを使用すると、この結果として得られるのは、クラス構造と一致しないすべての文字列です。これにアプローチするための良い習慣は何ですか?

4

1 に答える 1

0

これを行うには、さまざまな方法があります。たとえば、ディクショナリ テーブルを結合して、必要な列 (ID の代わりに色の名前など) を返すことができます。または、遅延評価することもできます。たとえば、データベースからその 1 つの行の値を取得する colorName の get メソッドを使用できます。ただし、遅延評価はパフォーマンスに悪影響を与える可能性があるため、ディクショナリ テーブルを Dictionary または同等のものに取得して、メモリ内で検索することができます。

于 2013-10-14T23:34:03.900 に答える