私はデータベースには比較的新しいので、これにアプローチする明白な方法がある場合、または欠落している基本的なプロセスがある場合はお詫びします。私は患者の医療記録を含むWebアプリケーションでPHPとMySQLを使用しています。 1つの要件は、ユーザがウェブページから医療記録を閲覧および編集できることである。オブジェクト指向のデータをリレーショナルデータベースの単一の行に直接エンコードするのは悪い方法ですか?
私はそれを想定したように、単一Patient
オブジェクトはid
、name
、及びaddress
などの基本的な属性を有し、各Patient
もMedication
オブジェクト(med_name, dose, reason
)、Condition
オブジェクト(cond_name, date, notes
)、および他のそのようなオブジェクト(の配列を有しますアレルギー、家族歴など)。
- 患者(ID、名前、住所、...)
- 薬(patient_id、med_name、用量、理由)
- :次のように私が最初に考えたのはテーブルとデータベースのスキーマを持っていることでした条件(patient_id、cond_name、日付、メモ)
- ...
はしかし、これは私には間違っているようです。新しい薬や条件を追加するのは簡単ですが、既存の薬や条件を削除したり編集したりするのは非常に効率が悪いと思われます。テーブルでpatient_id
と一致する行を探して、古いmed_name
、dose
、reason
フィールド、新しいデータで削除/編集します。 medications
とconditions
テーブルにいくつかの主キーを追加して、編集する行をより効率的に見つけることができますが、これは任意のデータのように見えます。
したがって、次のスキーマを持つ単一のテーブルがあった場合はどうなりますか?
- 患者(ID、名前、住所、クスリ、conds、...)
meds
とconds
は、単にMedication
とCondition
オブジェクトの配列の表現(たとえば、バイナリ)です
? PHPはこのデータを解釈し、必要に応じてデータベース内のデータを取得して更新することができます。
ここでのベストプラクティスについてのご意見は歓迎します。私はRuby on Railsに切り替えることも考えています。もしそれが何らかの決定に影響を与えるならば、それを聞くことに興味があります。ありがとうたくさんの人。
+1に:「そのようなあなたのデータを符号化する 『悪さ』や 『良さ』は、あなたのニーズによって異なりますが、それらの 『クスリ』でデータの個々の小さな塊を参照する必要はありません場合と '。テーブルを管理しているので、問題はありません。 – duffymo
ああ、私は何か明白でないことを知っていました。そのようなデータを取得するためにDBMSを使用することは、私たちが将来興味を持っていることです。これが最初の問題であると思われた理由は、 'meds'または' conds'テーブルのための明白なプライマリキーが存在しないということです。それらのフィールドのどれも固有のキーになることはありません。ここで尋ねた:[リンク](http://stackoverflow.com/questions/8852758/should-one-generate-a-unique-id-for-each-row-in-a-database-table-that-otherwise) 。あなたの答えに感謝します。 – tobek