質問: こんにちは。 Windows10でC#のアプリケーションを開発しています。 Visual Studio 2017 Communityを使っています。 ### 前提・実現したいこと | 列1 | 列2 | 列3 | 列4 | 列5 | 列6 | | --- | --- | --- | --- | --- | --- | | 収入 | | | | | | | 出費 | 生活費 | 食費 | 交際費 | 交通費 | 娯楽費 | | | 家賃 光熱費 | | | | | | 全員 | | | | | | | 夫 | | | | | | | 妻 | | | | | | | 子ども | | | | | | | 猫 | | | | | | それぞれ1月~12月、上半期、下半期、2017年、2018年... というような表をSQLのテーブルにするとしたら、どのようなテーブルを作ればよいですか? ### 補足情報(言語/FW/ツール等のバージョンなど) Microsoft Visual Studio Community 2017 Version 15.0.26228.9 D15RTWSVC Microsoft .NET Framework Version 4.6.01586 です。 よろしくお願いします。
回答: まず大きく分けて、人物や品目などのマスターテーブル、そして出費など日別で管理する通常のテーブルが必要です。 以下、私が考える必要と思えるテーブルと値の例です。 <マスターテーブル> ・人物マスター | ID | 名前 | | --- | --- | | 0 | 全員 | | 1 | 夫 | | 2 | 妻 | | 3 | 子供 | | 4 | 猫 | ・品目マスター | ID | 名称 | | --- | --- | | 0 | 生活費 | | 1 | 食費 | | 2 | 交際費 | | 3 | 交通費 | | 4 | 娯楽費 | | 5 | 家賃 | | 6 | 光熱費 | | 7 | 給料 | | 8 | パート代 | | 9 | その他 | <テーブル> ・入金テーブル | 日付 | 人物ID | 品目ID | 金額 | メモ | | --- | --- | --- | --- | --- | | 2017/08/05 | 1 | 7 | 250000 | | | 2017/09/07 | 1 | 7 | 300000 | | | 2017/09/10 | 2 | 9 | 10000 | 臨時収入 | ・出金テーブル | 日付 | 人物ID | 品目ID | 金額 | メモ | | --- | --- | --- | --- | --- | | 2017/08/05 | 2 | 1 | 100 | 大根 | | 2017/08/05 | 2 | 1 | 150 | 牛乳 | | 2017/08/10 | 2 | 5 | 100000 | | | 2017/08/15 | 0 | 3 | 50000 | 帰省 | | 2017/09/01 | 4 | 1 | 300 | 猫缶 | | 2017/09/07 | 0 | 6 | 90000 | | ざっと考えた感じです。 品目マスターを出費用と入金用で分けるかどうかはお好みで。 メモはあってもなくても良いですが、あるとちょっとしたメモに使えるかと。 あとはこれらのテーブルを集計して、質問にあるような表にまとめればよいでしょう。