【業務】
・納品書を元に、日々仕入データを入力している。
・月初に仕入先から請求書が来る。(月末締め)
・仕入データと請求書の金額突合せが完了したら、前月分を(変更できないように)締め処理したい。
以下の案1と2はどちらがよいのでしょうか?
それともケースバイケースでしょうか?
【案1】仕入データのカラムとして締め処理フラグを管理する
仕入日付 商品コード 仕入先コード 数量 単価 締め処理フラグ ・・・
【案2】別テーブル(締め処理テーブル)に持たせる
締め対象年月 仕入先コード ・・・
案1は冗長な気がしますが、プログラムはすっきりします。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
ベストアンサー
こんにちは。
他の状況をもっと知らないと、どっちがいいとは言えないのですが、
自分が同じ選択肢で悩み、多少工数に余裕があるのなら
【案2】
のほうを押す方向で考えると思います。
なぜかというと、今後、
- 締めを行ったユーザーが誰なのかを分かるようにして欲しい。
- いったん締めたものを差し戻して伝票内容を変更し、再度締めができるようにして欲しい。
- その際にも差し戻し処理や、再度の締めをしたユーザーとその日時も分かるようにして欲しい。
といった要望が業務側から出てきそうですし、逆に要望が出てこない
のなら、これらを提案することが可能だからです。
【案1】だと、このように「締め」に様々な属性を持たせるということに
対応するのが大変になりそう(=仕入れテーブルに「締め」の情報がどん
どん増えて巨大なテーブルになる)な予感がするのですが、【案2】だと、
業務システムとして、「締め」あるいは「締めるという業務」を、「仕入れ」
とは別の1つのエンティティ(または、モデル)として扱うことを、
(複数の開発者がいるのでしたら、チームの認識としても、)
はっきりさせることができます。
また、ある「仕入れ」にひもづく「締めの履歴」をリストすることで、
業務の改善が図れるという状況があるならば、迷わず【案2】です。
とはいえ、「締め」機能のリリースまでにどれくらいの工数をもらえるのか
にもよります。【案2】だとテーブル1個増やすので、それに対するモデル
やロジック、必要ならばビューもと、新しくひと揃え書くことになり、
ひと手間かかりそうですからね。
最近は、業務システムもアジャイルを取り入れることが多いと聞きますが、
冒頭に上げたような追加要件が必ず発生するとはいえないという状況ならば、
「気を回しすぎて、アレもコレも盛り込む」というのは、「想定できる機能
を全部は作らない」というアジャイルの方針に反することにもなります。
(※「想定できる機能を全部は作らない」のがアジャイルだというのは、
単なる私見です。すみません。そういう主張をどこかのブログか記事で
読んだだけなのですが、けっこう納得したので。)
と、いろいろ考えるべきファクターがありそうなのですが、私なら
どうするかというと、こうします。
【案1】と【案2】で迷っていて、【案1】だとほぼ瞬殺で終わるけど、
【案2】だとこれだけ時間がかかる。ただここで多少時間かけてでも
【案2】で設計、開発したら、今後「締め」に対する業務からの色々な要望に応えられる。
色々な要望として想像しているのは・・・の時や・・・の場合、とかとか。
という相談を、業務側の担当者に持ちかけます。そうすると、結果的に【案1】で
やることになったとしても、業務側から、
「◯◯さんはただ作るだけじゃなくていろいろ業務よりのことも考えてくれて頼もしい」
的な評判を得ることができたりするのです。老獪かもしれないですが、業務側からの
そういう評判、業務システムの開発やるときには大事だったりするもので。
思いつくのは、以上です。
参考になれば幸いです。
投稿2015/05/08 00:35
編集2015/05/08 05:38総合スコア9058
0
こんにちは。
締め処理があるということはおそらく締め日があると思います。
仕入入力があるということは仕入れ日(納品日?)があると思います。
締め処理データ(○月○日までは締められたというデータ)を保存し、
過去納品日の仕入れデータを編集する場合は、プログラムで編集処理を開始する前に締め日と仕入れ日を比較して編集可能か不要か判断しては如何でしょうか。
フラグだと二重管理気味になってしまいますし、
締め日で判断すれば締め処理の解除などの機能が必要になった場合も締め処理レコードを削除すれば済みます。
投稿2015/05/08 00:26
総合スコア4791
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
私は、フラグではなく、売上、仕入データに、締日、または、請求書番号を入れるようにしています。
そうすれば、締め直し、締め後日付での入力(やめてほしいけど、顧客がわがままだと、対応せざるを得ないときがあります)などのイレギュラ処理にも対応可能です。
別テーブルだと、そういったイレギュラな処理を、安全に対応することが難しくなります。
投稿2015/05/08 01:29
総合スコア295
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/05/08 04:22
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/05/08 03:49
2015/05/08 10:06