タイトル : 血圧降下剤の処方数量 テーブル設計
更新日 : 2024-03-20
カテゴリ : プログラミング
タグ :
opendata   

血圧降下剤の処方数量 オープンデータを使う TOPページ

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になっているか調べてない。集計、公開時の何かの操作で?)