私はついに、SOで答えを見つけることができない問題に遭遇しました...
私は、時間の経過とともに記録された記録されたサンプルデータを保存するデータベースに取り組んでいます。当初、クライアントは現在記録しているデータに非常に固有のテーブルを作成していましたが、拡張すると、収集されたデータが変化し始め、より多くの、または少なくとも異なる列が変化する可能性があることを懸念していました。必要とされます。
現在のモデル:
+------------------+ +------------------+
| FACILITIES | | DATA_RECORD |
+------------------+ +------------------+
| ID | | ID |
| NAME | | FACILITY_ID |
| DESC | | TIMESTAMP |
| etc. | | TEMP_WATER |
+------------------+ | TEMP_AIR |
| pH_WATER |
| etc... |
+------------------+
データベースは次のように設計する必要があると思います。
+------------------+ +------------------+ +------------------+
| FACILITIES | | DATA_RECORD | | COLUMNS |
+------------------+ +------------------+ +------------------+
| ID | | ID | | ID |
| NAME | | FACILITY_ID | | NAME |
| DESC | | details etc.. | | DESC |
| etc. | +------------------+ | UNITS, etc... |
+------------------+ +------------------+
+------------------+
| DATA_POINT |
+------------------+
| ID |
| DATA_RECORD_ID |
| COLUMN_ID |
| VALUE |
+------------------+
私の質問は次のとおりです。
- これはデータベースを設計するための最良の方法ですか、それとも私がよく知らないより良い方法がありますか。
- 各データレコードとそれに関連する各列を返すクエリステートメントを作成するにはどうすればよいですか?
- DATA_POINT.VALUEとして使用するのに一般的に受け入れられている適切なデータ型はありますか?例:float、decimal ...?
手伝ってくれてどうもありがとう。
心から、
ネイトK。