0

私は4つのテーブルを持っています:

  1. カテゴリー
  2. タイプ
  3. 病気-関連する病気があります。親と子の病気の間の親子関係を関連付けるために、同じテーブルのchildOfフィールドを使用しました。病気にはさまざまなレベルがあると言えます。病気レベル1、それからその下の他の多くの病気。単一のテーブルを使用した管理。
  4. 病気の治療-病気の治療

これらに加えて、私はそれらの間の関係のための他のすべてのテーブルを持っています

  1. カテゴリにはタイプがあります
  2. タイプは病気を持っています
  3. 病気は治療しています

検索ボタンがあります。検索後にすべてのレコードをグリッドビューに表示したい。このような 。何も選択せずに検索を押した場合。

Category name  -  Type     - disease                         - Treat
--------------------------------------------------------------------------------
record 1       -   type    -  level 1                        - treatment

record 1       -   type    -  level 1.1 (child of level 1)   - treatment

record 1       -   type    -  level 1.2 (child of level )    - treatment

どんな体でもこれを達成する方法を提案してください。ちょっとしたヒント。クエリを書きます。どのテーブルからデータの取得を開始する必要があるのか​​わかりません

ありがとう

4

2 に答える 2

1

データを見ると、あなたの説明はむしろ

  1. 病気にはタイプがあります
  2. タイプにはカテゴリがあります
  3. 病気には治療法があります
  4. 病気は親の病気になる可能性があります

したがって、病気から始めて、タイプに参加し、さらにカテゴリに参加し、病気から治療に参加する必要があります。

階層について:

解決策は、疾患階層の深さが固定されているかどうかに大きく依存します。たとえば、最大の深さが固定されている場合。子が1つある場合、childOF列を使用して「diseased_child」から「diseased_pa​​rent」への外部結合を追加できます。あるいは、すべての「根の病気」とすべての「子供の病気」を取得するクエリを結合することもできます。階層に固定の深さがない場合は、複数のクエリを作成し、プログラムで結果を結合することを検討する必要があります。

于 2012-05-22T09:48:44.527 に答える
0

まあ、それはすべて少し複雑で相互依存しすぎているようです。

私は別々のテーブルとそれらの間に関係テーブルを持ち、それらすべてをリンクし、必要に応じてデータを結合するものから選択します。

これにより、必要なさまざまな病気に関するすべてのデータを含む行が返されます。

しかし、質問は少し曖昧です。

于 2012-05-22T09:33:17.467 に答える