Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Как лучше спроектировать базу данных / 4 сообщений из 4, страница 1 из 1
07.02.2022, 19:34
    #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
07.02.2022, 20:43
    #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
07.02.2022, 21:49
    #40132355
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как лучше спроектировать базу данных
remlin,

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

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

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

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

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


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