In my project, there is income and expense. I have many business and assets. Every business and assets has income and expense. Beside this i have some general income like salary, bonus etc. also. So finally I make 6 table,
1. business, 2. assets, 3. catagory, 4. income, 5. expense, 6. accounts
+----------+---------+ +--------+---------+ +----------+---------+ +----------+---------+
| Business | Name | | Assets | Name | | catagory | Name | | account | Name |
+----------+---------+ +--------+---------+ +----------+---------+ +----------+---------+
| 1 |Business1| | 1 | Land1 | | 1 | profit | | 1 | Bank1 |
| 2 |Business2| | 2 | Land2 | | 2 | salary | | 2 | Bank2 |
| 3 |Business3| | 3 | Land3 | | 3 | Rent | | 3 | Cash |
+----------+---------+ +--------+---------+ +----------+---------+ +----------+---------+
The financial Transaction could be happen from either business, or asset or general and each have category, or may transfer balance from account to account. like below
+--------+---------+---------+---------+---------+
| Income | From | Catagory| Account | Amount |
+--------+---------+---------+---------+---------+
| 1 |Business1|Profit |Bank1 | 1000 |
| 2 |Land1 |Rent |Bank2 | 500 |
| 3 |General |Salary |Cash | 700 |
| 4 |Transfer |Null |Bank2 | 500 |
+--------+---------+---------+---------+---------+
and so expenses
+--------+---------+---------+---------+---------+
| Expense| From | Catagory| Account | Amount |
+--------+---------+---------+---------+---------+
| 1 |Transfer | Null | Bank1 | 500 |
| 2 |Land1 | Mainta..| Bank2 | 200 |
| 3 |General | Food | Cash | 700 |
| 4 |Assets | Invest | Bank1 | 1000 |
+--------+---------+---------+---------+---------+
This Design have some serious problem, After insertion I can't track 'from' column from income or expense table. This field became ambiguous.
I have to prepare income statement,balance sheet, account summary, business and asset wise report and i can't figure it out how to deal with this database or how to fix those tables.
Please give any suggestion or idea to fix those table structure to get prepare my income statement and balance sheet.