私はmysqlを使ったばかりで、一種の複雑なデータベースを作成しようとしていて、助けが必要です。
私のデータベース構造
Tables(columns)
1.patients (Id,name,dob,etc....)
2.visits (Id,doctor,clinic,Patient_id,etc....)
3.prescription (Id,visit_id,drug_name,dose,tdi,etc....)
4.payments (id,doctor_id,clinic_id,patient_id,amount,etc...) etc..
私は約 9 つのテーブルを持っています。それらのすべての主キーは「id」で、autoinc に設定されています。
私は自分のデータベースでリレーションを使用していません (私はそれがより良いかどうかわかりません!そして、私は mysql に本当に深く入ったことはありませんでした.詳細情報/ストアなどを取得するには..)
例: 患者の 1 人に与えたすべての薬を表示したい場合、たとえば、患者の ID は :100 です。
1-click patient name (name link generated from (tbl:patients,column:id))
2-search tbl visits WHERE patient_id=='100' ; ---> that return all his visits ($x array)
3-loop prescription tbl searching for drugs with matching visit_id with $x (loop array).
4- return all rows found.
私のデータベースがますます拡大するにつれて(訪問テーブルの1k +レコード)、1人の患者が40を超える訪問を持つことができます。つまり、処方テーブルに40回ループして、以前の処方箋をすべて取得します。
だから私は小さなチークを思いついたので、私のデータベースを編集して、患者IDと訪問_IDがほぼすべてのテーブルの列になるようにして、ステップ2と3を1つのステップにスキップできるようにしました(処方箋tblを検索して患者ID = 100)、しかしそれは私を残しました私のデータベースには非常に多くの重複があり、それを行うのはちょっとばかげていると感じます!!
リレーショナル データベースの使用を検討する必要がありますか?
もしそうなら、これが私の人生をどのように楽にするかを誰かが少し説明できますか?
この再設計を行うことができますが、現在のテーブルを変更するか、すべてのテーブルを再作成する必要がありますか?
どうもありがとうございます