- PR -

日数を元に処理をしたい。

投稿者投稿内容
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-07-05 10:57
引用:

オウドーさんの書き込み (2007-07-05 10:52) より:

上記の文でますます?になってしまいました。
初年度の6ヵ月から5年6ヵ月までは毎年有休付与数が変わるので仮に有休取得月を設定しても無意味だと思っております。


付与数もマスタとしておけば良いです。というか、私はそうしています。有給マスタというのがありまして、ここに何年目はいくつ付与されるかと最大でいくつ保有できるかをデータとして持っています。これと社員の勤続年数をひもづければ良いでしょう。

引用:

有休取得日をデータとしてもっておいて”その日がくれば行われる処理”を書くだけと
いうことですよね?


はいそうです。もともとそういう意図で捉えていたのであれば、申し訳ありません。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
オウドー
ベテラン
会議室デビュー日: 2007/06/05
投稿数: 59
投稿日時: 2007-07-05 11:27
引用:

じゃんぬねっとさんの書き込み (2007-07-05 10:57) より:

付与数もマスタとしておけば良いです。というか、私はそうしています。有給マスタというのがありまして、ここに何年目はいくつ付与されるかと最大でいくつ保有できるかをデータとして持っています。これと社員の勤続年数をひもづければ良いでしょう。

引用:

有休取得日をデータとしてもっておいて”その日がくれば行われる処理”を書くだけと
いうことですよね?


はいそうです。もともとそういう意図で捉えていたのであれば、申し訳ありません。





極論ですが最大勤続年数は18〜65歳の45年です。
45年分の列を作ってるのでしょうか。それは考えにくいので6年6ヵ月以降は20日付与・・・みたいな処理をしてるのでしょうか。しかし、7年6ヵ月のデータを収める場所がない。ん〜、やさしい問題を自分で難しくしてる気持ちです。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2007-07-05 11:37
引用:

オウドーさんの書き込み (2007-07-05 11:27) より:

極論ですが最大勤続年数は18〜65歳の45年です。
45年分の列を作ってるのでしょうか。それは考えにくいので6年6ヵ月以降は20日付与・・・みたいな処理をしてるのでしょうか。しかし、7年6ヵ月のデータを収める場所がない。ん〜、やさしい問題を自分で難しくしてる気持ちです。


"45 列" ではなく '45 行' ですよね。 何だかテーブル設計の段階から誤解があるように思えます。 その考えだと社員データに冗長に持つという考え方をしていないでしょうか? テーブルのリレーションや正規化を意識して脳内設計すると良いと思います。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
オウドー
ベテラン
会議室デビュー日: 2007/06/05
投稿数: 59
投稿日時: 2007-07-05 11:54
引用:

じゃんぬねっとさんの書き込み (2007-07-05 11:37) より:
"45 列" ではなく '45 行' ですよね。 何だかテーブル設計の段階から誤解があるように思えます。 その考えだと社員データに冗長に持つという考え方をしていないでしょうか? テーブルのリレーションや正規化を意識して脳内設計すると良いと思います。



45行ですか…何分、新人なもんで上手く設計できないです。(まぁ言い訳ですが。)
正規化、リレーションともに理解をしておりますがなんてゆうんでしょうか。
それをするためのベース(テーブル)ってのが上手く作成できないんですよね。

話は戻りますが”列45”じゃなく”行45”ですか。

社員名 有休付与
田中  10日
田中  11日
田中  20日

こんな感じでいいのかな?
ぽぴ王子
ぬし
会議室デビュー日: 2006/03/24
投稿数: 475
お住まい・勤務地: お住まい:城・勤務地:城
投稿日時: 2007-07-05 12:05
一例ですけども。

コード:

◆社員テーブル
社員コード 社員名
1          R・田中
2          じゃんぬ御大

◆社員有休テーブル
社員コード 連番 有休付与日
1          1    2007年6月10日
1          2    2008年3月20日
1          3    2008年9月12日
2          1    2000年10月1日
2          2    2001年10月2日
2          3    2002年10月21日



こんな感じで。
_________________
ぽぴ王子@わんくま同盟
ぽぴ王子の人生プログラミング中 / ぽぴンち。
オウドー
ベテラン
会議室デビュー日: 2007/06/05
投稿数: 59
投稿日時: 2007-07-05 12:08
引用:

ぽぴ王子さんの書き込み (2007-07-05 12:05) より:
一例ですけども。

コード:

◆社員テーブル
社員コード 社員名
1          R・田中
2          じゃんぬ御大

◆社員有休テーブル
社員コード 連番 有休付与日
1          1    2007年6月10日
1          2    2008年3月20日
1          3    2008年9月12日
2          1    2000年10月1日
2          2    2001年10月2日
2          3    2002年10月21日



こんな感じで。



なるほど。そして、プログラムで社員と有休付与日を見てその日付を超えていれば
付与するといった形ですか。(あまり自信なし。)
オウドー
ベテラン
会議室デビュー日: 2007/06/05
投稿数: 59
投稿日時: 2007-07-05 12:26
今、ふと思ったんですが仮にそういったデータを持ってロジックに入ろうとしたとき
2008年9月12日を越えていたら14日付与といった処理になりますよね?
そういった場合、2007年6月10日も含まれるので駄目だと思うんですよ。

2008年9月12日を越えていたら14日付与といった処理になりますよね?

この処理以外にやり方があれば別ですが。
shimix
ぬし
会議室デビュー日: 2004/08/05
投稿数: 512
お住まい・勤務地: 大分市
投稿日時: 2007-07-05 13:11
引用:

オウドーさんの書き込み (2007-07-05 12:26) より:
2008年9月12日を越えていたら14日付与といった処理になりますよね?
そういった場合、2007年6月10日も含まれるので駄目だと思うんですよ。


チェックする順序だけの問題では?後方から順にチェックして、真になって処理したらbreakして以降はskipというだけ・・。

というか普通は「有給マスタ」って勤続年数と付与日数だけでいいような・・。社員マスタの有給付与月(あくまでも「月だけを保持」)が処理月と等しかったら勤続年数から付与日数を取ってくるとかいうロジックじゃダメですか?

スキルアップ/キャリアアップ(JOB@IT)