powered by simpleCommunicator - 2.0.48     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как лучше спроектировать базу данных
4 сообщений из 4, страница 1 из 1
Как лучше спроектировать базу данных
    #40132336
remlin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть таблица учета расходов со следующими полями

"Расходы"
1. id (int, not Null)
2. дата (date, Not null)
3. сумма (decimal, Not null)
4. статья расхода, (string Allow NULL)
5. договор (string, Allow NULL)

Иногда необходимо сумму разбить на несколько статей учета и/или отнести к нескольким договорам.(т.е. например Сумму 1000руб разбиваем на 300р, 200р и 500р. 300р относим на статью расхода "Бензин" и относим к договору №1, 200р отнести без статьи учета на договор №2, а 500р отнести на статью учета "Пиломатериалы" без привязки к договору).
Как лучше сделать реализацию в БД в таком случае? Выносить статью учета и договор в отдельную таблицу с отношением один-ко-многим? или есть какие то другие способы?

MS Sql Server 2016
...
Рейтинг: 0 / 0
Как лучше спроектировать базу данных
    #40132351
godsql
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
"Расходы"
1. id (int, not Null)
2. дата (date, Not null)
3. сумма (decimal, Not null)

1. id (int, not Null)
2. idr (int, not Null) REFERENCES "Расходы"(id)
3. сумма (decimal, Not null)
4. статья расхода, (string Allow NULL)
5. договор (string, Allow NULL)


А в принципе, можно вообще не бить, а ввести идентификатор, который будет показывать, что суммы составляют одну

"Расходы"
1. id (int, not Null)
2. дата (date, Not null)
3. сумма (decimal, Not null)
4. статья расхода, (string Allow NULL)
5. договор (string, Allow NULL)
6. idSumIn

Хотя по правилам нужно раскидать еще на таблицу договоров и таблицу статей расходов :)
...
Рейтинг: 0 / 0
Как лучше спроектировать базу данных
    #40132355
Владислав Колосов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
remlin,

платёж
id
сумма

расходы
id, дата, сумма, id договора, id статья расхода, id платёж

статья расхода
id
name

договор
id
номер
дата
...
Рейтинг: 0 / 0
Как лучше спроектировать базу данных
    #40132601
remlin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо большое за ответы! Да, я знаю, что правильно "Расходы" и "Договоры" выделять в отдельные таблицы, как раз собирался так и сделать.

Владислав Колосов, а не будет ли поле "Сумма" в таблице "Платеж" избыточным? Согласен, что удобно выдернуть сумму из одной таблицы, чем считать сумму столбца "сумма" таблицы "Расходы".
Но например есть пользователь вручную вводит данные и неправильно разбил сумму на статьи, то в данных будет ошибка.
Или можно как-то реализовать проверку на уровне базы данных?
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как лучше спроектировать базу данных
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]