0

このデータを MySql に保持する必要がありますが、これを 1 つまたは複数のテーブルに整理する方法がわかりません (SQL/データベースは私の分野ではないため)。今、私は自分の情報を次のように表します:

device_name|HW_version|SW_version|IP_addr_pvt|IP_addr_pub|data_specific_to_device|associated_service   |associated_device
dev_x      | 1234     |1234      |1.2.3.4    |9.8.7.6    |data_specific_to_x     |SVC_A,SVC_B,SVC_C... |dev_y,dev_z,dev_n,dev_m...
dev_y      | 2348     |7734      |10.2.3.4   |99.8.7.6   |data_specific_to_y.....|SVC_B,SVC_X...       |dev_x,dev_m...
dev_z      | 3934     |5634      |11.2.3.4   |79.8.7.6   |data_specific_to_z.....|SVC_M                |dev_n,dev_m...
...

plアドバイス。ベストなデザインは何でしょう?data_specific_to_device は、データをもう少し探索できるようになるため、複数の列になる可能性があります。

device_id フィールドは本当に必要ですか? これは通常、どの SQL テーブルにもあります。

そのデータをめったに (ほとんど) 変更しないように追加したいと思います。追加も月に 1 回 2 回です。

タイ。

4

1 に答える 1

0

複数のテーブルが必要です。

「associated_service」は、次のような別のテーブルになります。

device_id service

同様に、「associated_device」はテーブルになります。

device_id associated_device

これらはそれぞれ、1 つの device_id に対して複数の行を持つことができます

「data_specific_to_device」には、デバイス タイプごとに異なる列がありますか? この場合、デバイスの種類ごとに個別のテーブルを用意し、デバイスの device_id によって再度インデックスを作成して、正しい列を取得することができます。

編集: デバイス名が一意であり、それらを変更したくない場合は、それらを device_id として使用できます。テーブル全体でデバイスを検索するのに適したものが必要なだけです。

于 2012-08-15T18:44:58.853 に答える