タイトル : 血圧降下剤の処方数量 テーブル設計 
更新日 : 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になっているか調べてない。集計、公開時の何かの操作で?)