Вопрос касательно проектирования БД

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
AlekseyVB
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 71
Зарегистрирован: 10.04.2009 (Пт) 18:47

Вопрос касательно проектирования БД

Сообщение AlekseyVB » 26.01.2010 (Вт) 15:36

Добрый день

Хочу создать базу данных - Мои личные доходы и расходы (источник данных SqlServer). Необходим совет по поводу проектирования такой базы данных.
Нужно ли нормализовать БД следующим образом, таблицы:
- Виды расходов
- Виды доходов
- Расходы (Первый столбец Дата, остальные названия столбцов - виды расходов)
- Доходы (Первый столбец Дата, остальные названия столбцов - виды доходов)

Допустим, запись, вносится каждый день в конце дня. Т.е. одна строка в таблицах Расходы и Доходы представляет собой данные за 1 день, разнесенные в соответствующие колонки по видам.

Или будет достаточно содержать две таблицы Расходы, Доходы, названия столбцов которых соответствуют видам доходов и расходов.

Вообщем хочется узнать, как правильно проектировать такую и подобного вида базы данных. Может, есть другой способ разделения данных по таблицам? Может нужно данные каждого Вида Расходов хранить в отдельной таблице?

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Вопрос касательно проектирования БД

Сообщение alibek » 26.01.2010 (Вт) 15:58

Зачем различать расходы и доходы?
Достаточно таблицы транзакций и видов транзакций. При желании можно добавить таблицу биллинга, чтобы фиксировать баланс на определенную дату.
Lasciate ogni speranza, voi ch'entrate.

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Вопрос касательно проектирования БД

Сообщение alibek » 26.01.2010 (Вт) 15:58

AlekseyVB писал(а):Или будет достаточно содержать две таблицы Расходы, Доходы, названия столбцов которых соответствуют видам доходов и расходов.

За такое нужно лишать прав.
Lasciate ogni speranza, voi ch'entrate.

AlekseyVB
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 71
Зарегистрирован: 10.04.2009 (Пт) 18:47

Re: Вопрос касательно проектирования БД

Сообщение AlekseyVB » 26.01.2010 (Вт) 16:28

Какой вариант будет правильным? Насколько я понимаю - первый.

Вариант1
Таблица - Транзакции
Дата___________ Вид транзакции_______Сумма
01.01.2010________Доход Зарплата_______500
01.01.2010________Доход Премия________1000
01.01.2010________Расход Техника_______-300
01.01.2010________Расход Продукты______-400
02.01.2010________Доход Прочее________300
02.01.2010________Расход Продукты______-100

Таблица - Виды транзакции:
Код_____Транзакция
1________Доход Зарплата
2________Доход Премия
3________Расход Техника
4________Расход Продукты
5________Доход Прочее
6________Расход Продукты

Вариант2
Таблица - Транзакции
Дата____________Вид1_____ Вид2_____ Вид3 .........
01.01.2010_________500________0_______100
02.01.2010__________0_______-300______300
03.01.2010_________300______-100______0
04.01.2010__________0_________0_______1000

Таблица - Виды транзакции
Код_____Транзакция
1________Доход Зарплата
2________Доход Премия
3________Расход Техника
4________Расход Продукты
5________Доход Прочее
6________Расход Продукты

Отчет должен формироваться следующим образом - за указанный период по видам Доходов и Расходов.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Re: Вопрос касательно проектирования БД

Сообщение iGrok » 26.01.2010 (Вт) 18:24

Ни то ни другое. Бери вариант alibek:

Транзакции: дата, ид типа, сумма, примечание (если надо)
Типы: ид типа, описание типа.

Всё.
label:
cli
jmp label


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 95

    TopList