社内システム育成日記

デイサービスでの簡単なシステムをファイルメーカーで作成しています。備忘録を綴っていきます。

利用者マスタから見直してみる

まずは利用者マスタからです。

 

利用者さんに関する情報もそれぞれの性質によって取扱は変わってきます。

固定情報なのか更新される情報なのか?

1人の利用者さんに対して1つの情報なのか、複数あるかもしれない情報なのか?

考える必要があります。

利用者マスタで必要な情報のうち、固定された情報でかつ1人の利用者さんに対して1つしかない項目は

といったところです。これが利用者マスタの核になります。

例えば、住所は本当はその人固定の情報ではないですんですけど、このレベルの情報は固定情報として扱いたいと思います。(正規化すればいいっていうものでもないみたい)

 

例えば、生年月日さえわかっていれば年齢は計算できるので、これは計算フィールドにしておき、以下のように組み込みます。

年齢を計算する

Let (
[
%今日=Get ( 日付 ) ;
%今年=Year ( %今日 );
%誕生年=Year ( 生年月日 );
%誕生月=Month ( 生年月日 );
%誕生日=Day ( 生年月日 );
%今年の誕生日=Date ( %誕生月 ; %誕生日 ; %今年 )
] ;


Case (

IsEmpty ( 生年月日 ); "";

/*今年の誕生日が来た場合*/
%今年の誕生日 ≤ %今日;%今年-%誕生年;
/*今年の誕生日がまだ来ていない場合*/
%今年の誕生日 > %今日;%今年-%誕生年-1;
))

 

以前はLet関数も使っておらず、計算の中にコメントをつけるということもしていなかったので、今回はきちんとしていこうと思います😏

 

あとは、利用者IDを外部キーにもつ詳細テーブルを作ります。

  • アセスメント(利用者IDと作成日)
  • 介護度(利用者IDと有効期間)
  • 電話番号(1つとは限らないので)
  • 家族マスタ
  • 利用プラン(何曜日にどんな利用をするか?)

などなど色々ぶら下がってきます。

 

システムを初めて作ったときは売上の計算など先のことまで考えていなくて、介護度を利用者マスタの核に設置してしまったんですけど、有効期限があるのでこれは別テーブルにする必要がありますよね😅

必要なところは別テーブルで管理できるよう、少しずつ改修していきます。

 

 

【追記】

利用者マスタに誕生日というフィールドを作るのはやめて、ボタンバー名に計算を入れて表示だけさせるようにしました。

エクセルで管理していたときからあったので、当たり前のように誕生日フィールドを入れていましたが、(これが動的に動くだけで大進歩だったw)顧客管理のデータとしては不要なものですよね。

hotspiringday.hatenablog.com