2011-06-28 5 views
-6

私はSQLプログラミングの新機能です。 私の質問は、DBに配列値を格納する方法です。 たとえば、ある部門のスケッチを調整したいとします。 病院にしましょう。 と私はフロアを置き、各フロアごとに部屋を入れて各部屋にベッドを置いておきたい。SQLテーブルに配列を格納するにはどうすればいいですか

私はいくつかのforループを使用すると修正できると思っていました。しかし、私はできませんでした。

どうすれば修正できますか?

 Console.Write("enter floor numbers "); 
     kat = int.Parse(Console.ReadLine()); 
     Console.Write("enter room numbers "); 
     oda = int.Parse(Console.ReadLine()); 
     Console.WriteLine("enter bed numbers"); 
     yatak = int.Parse(Console.ReadLine()); 

     for (i = 1; i <= kat; i++) 
     { 
      for (j = 1; j <= oda; j++) 
      { 
       for (k = 1; k <= yatak; k++) 
       { 
        Console.WriteLine("total bed numbers {0} {1} {2}", i, j, k); 
       } 
      } 

1つには2を入れると、DBに8つのセルを作成する必要があります。

+0

通常のC#プログラムを表示しているSQLについて質問をします。 SQLでプログラミングするときは、配列ではなく集合で考える必要があります。幸いなことに、配列はセットとして格納できますが、配列要素ごとに行が必要です。 – faester

+0

実際のARRAYデータ型をサポートしているSQLサーバー(Postgresなど)もありますが、ほとんどの場合、本当に必要なものではありません。 faesterが正しく回答しました。おそらく、実際には異なる列にデータを格納したいと思っています。 – Flimzy

答えて

1

リレーショナルデータベースについて言えば、すべてのオブジェクトとそれらの間の関係を保存できるようにテーブルを設計する必要があります。 例の場合、あなたは(カーディナリティに関する一般的な仮定を作る - ちょうどサンプルとしてそれを取る)

Hospital --> 1..many Floors --> 1..many Rooms --> 0..many Beds 

を提供してきた上記の関係に基づいて

を、あなたはそれぞれの名詞用のテーブルを持っているでしょう、すなわち、病院、フロア、部屋およびベッド。 リレーショナルデータベースでは、RECORD(列ではありません)は、テーブルによって表されるエンティティの1つの別個の値を表します。病院に10階建ての場合は、フロアテーブルに10のレコードがあります。

テーブル内の各レコードは、そのプライマリキーと呼ばれる値によって一意に識別されます。

親テーブルとその子テーブルの関係は、この主キーを使用し、外部キー制約と呼ばれるものを作成することで行われます。基本的に、フロア1に10の部屋がある場合、どの部屋がどのフロアに属しているかを知るには、フロアNo、つまりRoomテーブルに「1」が表示されます。

全体的には、これはあなたの質問に対する直接的な解決策ではありませんが、あなたの問題を解決するために必要な基本的なRDBMSの概念を十分に理解することができれば幸いです。ルックアップの要点:基数、主キー、および外部キー。

関連する問題