タイトル : 血圧降下剤の処方数量 テーブル設計
更新日 : 2024-03-20
カテゴリ : プログラミング
タグ :
NDBオープンデータのEXCELをどうデータベース化しようかな...
とりあえず総量だけにして始めてみよう。データベースは、Postgres を使います
NDBオープンデータのEXCELファイルをみてテーブル設計を行いました。(3/16)
ですが、実際に複数年度のファイルのデータ追加を行ってみて以下に気がつきました(3/20)
- (あとで考えると当たり前だけど)年度毎に薬価が違う
- 上記により後発品区分も年度で見直しが入るのかも
- 医薬品コードに対する医薬品名が年度毎に変更になる
どうしましょう。こうしましょう
- 薬価、後発品区分(後発品になると値段が安くなるイメージなので薬価とセット)を年度毎にもてるようにテーブル設計し直そう
- 薬効分類コード、医薬品コードはEXCELじゃくなくてマスターから持ってくる → でも今回は見送り。年度毎のEXCELの薬効分類コード、医薬品コードを集計して一意にした
(こういうテーブル変更が発生した時ってalembicは本当に便利です。モデルファイルを書き換えれば良いので)
テーブル:iy_category
id : int 薬効分類 PK
name : str 薬効分類名称
変更前 テーブル:iy_code
id : int 医薬品コード PK
iy_category_id : FK:iy_category.id 薬効分類
name : str 医薬品名
price : float 薬価
generic : bool 後発品区分
変更後 テーブル:iy_code
id : int 医薬品コード PK
iy_category_id : FK:iy_category.id 薬効分類
name : str 医薬品名
テーブル:iy_price
id : int PK
year : int
iy_code_id : FK: iy_code.id 医薬品コード
price : float 薬価
generic : bool 後発品区分
テーブル:iy_quantity
id : int PK
iy_code_id : FK: iy_code.id 医薬品コード
year : int
quantity : bigint 処方総数
EXCELでの"-" は0とする
EXCELではfloatだけどbigintで
(数量のはずなのになぜfloatになっているか調べてない。集計、公開時の何かの操作で?)