前提
とある管理画面を作成するのですが、ハタと「どうテーブル設計すればいいのか?」と悩んでおり、ご助言をいただきたいです。
実現したいこと
- 一人のユーザーに対し、属性や家計情報を登録します。
- 属性は、氏名や性別など一般的なものです。
- 家計情報がネックとなっています。
- 家計情報は月ごとの収入と支出です。
- 収入と支出は可変個登録です。
- 最終的に、ユーザーごとの支出の集計表を出力します。
検討内容
登録するものの個数が固定であれば、ユーザーテーブルに登録するもののカラムを用意して値を入れればいいのですが、可変個登録のため、テーブルは分ける必要があると思っています。
ユーザー |
---|
ID |
氏名 |
性別 |
年齢 |
収入 |
---|
ユーザーID |
収入名 |
金額 |
支出 |
---|
ユーザーID |
支出名 |
金額 |
のようにテーブルを作成したとすると、出来上がるデータは
ID | 氏名 | 性別 | 年齢 |
---|---|---|---|
1 | ユーザーA | 男 | 30 |
2 | ユーザーB | 女 | 27 |
ユーザーID | 収入名 | 金額 |
---|---|---|
1 | 月収 | 300000 |
1 | 臨時収入A | 20000 |
2 | 月収 | 250000 |
2 | 臨時収入A | 15000 |
2 | 臨時収入B | 10000 |
ユーザーID | 支出名 | 金額 |
---|---|---|
1 | 家賃 | 60000 |
1 | 光熱費 | 15000 |
1 | 交際費 | 20000 |
1 | ローン | 30000 |
2 | 家賃 | 60000 |
2 | 光熱費 | 15000 |
2 | 交際費 | 20000 |
のようなものになります。
発生している問題
支出の集計表はユーザーごとに分かれおり、
月収 | |
臨時収入A | |
収入計 | |
家賃 | |
光熱費 | |
交際費 | |
ローン | |
支出計 |
という形です。
実際はもう少し複雑ですが、要点だけに絞るため簡略化しています。
どうSQLを組んだものかと悩んでおり、テーブル構成が妥当かどうかを含め、アドバイスを頂ければと思います。Laravelを使用します。
よろしくお願いします。
回答3件
あなたの回答
tips
プレビュー