Djangoで会計処理をするアプリを作成しています。
市販の会計ソフトから仕訳データを取り出したCSVを読み込んで、データベースにデータを保存しています。
仕訳データには、下記のデータが含まれます。
0. 日付
0. 借方勘定科目
0. 借方補助科目
0. 借方金額
0. 貸方勘定科目
0. 貸方補助科目
0. 貸方金額
0. 摘要
会計仕訳を処理するModelは、下記のとおりとしています。
python
1# models.py 2# 仕訳データのモデル 3class JournalDiary(models.Model): 4 date = models.DateField(blank=True, null=True) # 日付 5 dr_subject = models.ForeignKey(AccountingSubject,related_name="dr_subject", blank=True, null=True) # 借方勘定科目 6 dr_auxiliary_subject = models.IntegerField(blank=True, null=True) # 借方補助科目 7 dr_amount = models.IntegerField(blank=True, null=True) # 借方金額 8 cr_subject = models.ForeignKey(AccountingSubject, related_name="cr_subject", blank=True, null=True) # 貸方勘定科目 9 cr_auxiliary_subject = models.IntegerField(blank=True, null=True) # 貸方補助科目 10 cr_amount = models.IntegerField(blank=True, null=True) # 貸方金額 11 content = models.CharField(max_length=100, blank=True, null=True) # 備考 12
勘定科目については、別途勘定科目のモデルがあり、勘定科目毎にIDがバラバラなので、ForeignKeyで処理できています。
しかし、補助科目について、会計ソフトから出力される数字が、勘定科目毎に1から振ってあるので、被ってしまいます。
例えば、当座預金(110)の補助科目にもIDの1番があり、普通預金(111)の補助科目にもIDの1番があります。
個人的には、下記の2つの方法が思いつきました。
①CSVで出力された数字をそのままデータベースに保存し、補助科目はForeignKeyとしては扱わず、IntegerFieldとして扱う。表示をしたり、集計したりするときに初めて、勘定科目との関係でその勘定科目の中の補助科目として処理する。
②CSVから出力された数字を、勘定科目との関係で別のIDを振り直したうえで、データベースに保存する。補助科目はForeignKeyとして処理する。例えば、当座預金(110)の中の補助科目ID1には、11001、普通預金(111)の中の補助科目ID1には、11101というIDを振り直すという感じです。
ここまで書いてみて、②の方が良いのではないかという気がしてきたのですが、どちらの方法で処理するのが一般的でしょうか?
分かりづらい質問で申し訳ございませんが、お分かりの方ご教示頂ければ幸いです。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/01/05 04:49
2018/01/08 16:23
退会済みユーザー
2018/01/10 09:12