Другие языки программирования и технологии

Помогите создать базу данных

Здравствуйте!
Помогите есть задание создать базу данных. В ней доходы и расходы, которые делятся на доходы (з/п (в ней папа, мама, бабушка и тд) , кредит, и т. д. ) и расходы (продукты (в ней еда, хлеб и тд) , машина (в ней бензин, ремонт и тд) , и т. д.) . Не могу понять с чего начать делать две таблицы "доходы", "расходы", или кучу маленьких. Даже не представляю как это будет выглядеть.
Помогите пожалуйста. Заранее спасибо за помощь.
________________
Таблица доходов
-----------------------------
первичный ключ (авто инкремента)
ключ члена семьи
размер дохода
_________________

_________________
Таблица членов семьи
-------------------------------
первичный ключ (авто инкремента)
ФИО
семейное положение (в плане: мамка, папка)
__________________

__________________
Таблица расходов
--------------------------------
первичный ключ (авто инкремента)
ключ предмета расхода
__________________

__________________
Таблица предметов расходов
--------------------------------
первичный ключ (авто инкремента)
наименование
ключ списка расходов
__________________

__________________
Таблица списков расходов
--------------------------------
первичный ключ (авто инкремента)
ключ вида расхода
__________________

__________________
Таблица видов расходов
-------------------------------
первичный ключ (авто инкремента)
наименование
стоимость
__________________

В таблицу расходов можно добавить поле дополнительные расходы. Пригодиться, если виды расходов не фиксированы.
Игорь Базанов
Игорь Базанов
150
Лучший ответ
Я бы не делал отдельно таблицы доходов и расходов, а сделал одну таблицу транзакций. Опять же, вместо "статьи доходов/расходов" сделал одну - вид транзакции, и поле +1 для доходов и -1 для расходов. Так легче считать баланс:

SELECT SUM(T.SUM*TT.MULTIPLIER)
FROM TRANSACTIONS T, TRANSACTION_TYPES TT
WHERE T.TRANSACTION_TYPE=TT.TRANSACTION_TYPE
а в чем база, ЕКСЕЛЬ, АКСЕСС...?
Я бы сделал примерно так:

1) Завел бы таблицу СТАТЬИ_РАСХОДА с полями
а) id статьи расхода
б) Наименование статьи расхода
в) Признак актуальности
г) ссылка на узел верхнего уровня
И запихнул бы в эту таблицу дерево расходов:
-Продукты
--хлеб
--молоко
--мясо
-Обслуживание автомобиля
--бензин
--ремонт
-Квартплата
--электроэнергия
--водоснабжение
-Платежи по кредитам
--кредит в ВТБ
--кредит в ХоумКредит
и т. п.

2) Завел бы таблицу СТАТЬИ_ДОХОДА с полями
а) id статьи дохода
б) Наименование статьи дохода
в) Признак актуальности
г) ссылка на узел верхнего уровня
И запихнул бы в эту таблицу дерево доходов:
-Папа
--зарплата на первой работе
--зарплата на воторой работе
-Мама
--зарплата
--алименты
--гонорары
-Бабушка
--пенсия
и т. п.

3) Завел таблицу РАСХОД с полями:
а) id расхода
б) Сумма расхода
в) Дата расхода
г) Статья расхода (ссылка на поле id таблицы СТАТЬИ_РАСХОДА)

4) Завел таблицу ДОХОД с полями:
а) id дохода
б) Сумма дохода
в) Дата дохода
г) Статья дохода (ссылка на поле id таблицы СТАТЬИ_ДОХОДА)

Эта схема позволяет, во-первых, легко добавлять/закрывать статьи расходов, во-вторых, группировать доходы/расходы по различным уровням иерархии (сколько принес в казну папа, сколько сожрал бензин) , в третьих, допускает дальнейшую детализацию статей (скажем, продукты-мясо можно разбить на говядину-свинину без перестройки структуры таблиц).
члены семьи
виды расходов

- продукты

вид товара

--хлеб

--молоко

- машина

тип обслуживания

--бензин

--ремонт

- кредит

виды доходов - зарплата, пенсия, клад, воровство.. .

что-то в этом роде
WK
Wictor Karpov
2 769