konchanxxx / menta

MENTAのタスク管理用リポジトリ
0 stars 0 forks source link

過去のデータには影響させずに変更する方法 #40

Closed yoshimitsu41 closed 5 years ago

yoshimitsu41 commented 5 years ago

概要

売上管理を行うrailsアプリを作成していて、 ・商品のモデル ・売上一覧を表示させている

商品テーブルには、商品名、価格、原価 というカラムがあります。

そこで… 2018年はA商品が1000円だった。 しかし2019年A商品は1200円に値上がりした。

といった場合、 商品モデルでA商品の値段を変更してしまうと 過去の売上にもデータが影響してしまいます。

このような場合どのように対処するのが最適でしょうか?

実現したいこと

過去のデータには影響をさせずに、これからのデータだけに反映させたい。

困っていること

どのように実装すれば過去のデータに影響を受けさせずにすむのか。

解決するために行ったこと

実装方法を検討中。

問題となっている箇所の予想

・2019年以降の場合は金額を変更させる条件分岐させる? それ以外に案はありますでしょか?

問題となっているアプリケーションのGitHub URL

githubで共有した、menta_bbqです。

konchanxxx commented 5 years ago

売上管理を行うということは売上た時点での売上結果を管理するテーブルが必要なので取引履歴テーブルのようなものを用意してそちらで管理するのが好ましいかなと思います。

商品テーブルに価格を持たせて履歴テーブルではその金額をカラムに保存する形です。 参照せずにその時点で売上た結果を管理するので金額変更した場合でも影響がないと思います。

yoshimitsu41 commented 5 years ago

取引履歴テーブル。なるほど! 今までは取引履歴テーブルはなく、ビューで計算した値を表示させていただけでした。 取引履歴テーブルを作って対応します。 ありがとうございます!

konchanxxx commented 5 years ago

おkです!!:bow: