|
Как лучше спроектировать базу данных
|
|||
---|---|---|---|
#18+
Есть таблица учета расходов со следующими полями "Расходы" 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2022, 19:34 |
|
Как лучше спроектировать базу данных
|
|||
---|---|---|---|
#18+
"Расходы" 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 Хотя по правилам нужно раскидать еще на таблицу договоров и таблицу статей расходов :) ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2022, 20:43 |
|
Как лучше спроектировать базу данных
|
|||
---|---|---|---|
#18+
remlin, платёж id сумма расходы id, дата, сумма, id договора, id статья расхода, id платёж статья расхода id name договор id номер дата ... |
|||
:
Нравится:
Не нравится:
|
|||
07.02.2022, 21:49 |
|
Как лучше спроектировать базу данных
|
|||
---|---|---|---|
#18+
Спасибо большое за ответы! Да, я знаю, что правильно "Расходы" и "Договоры" выделять в отдельные таблицы, как раз собирался так и сделать. Владислав Колосов, а не будет ли поле "Сумма" в таблице "Платеж" избыточным? Согласен, что удобно выдернуть сумму из одной таблицы, чем считать сумму столбца "сумма" таблицы "Расходы". Но например есть пользователь вручную вводит данные и неправильно разбил сумму на статьи, то в данных будет ошибка. Или можно как-то реализовать проверку на уровне базы данных? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2022, 17:21 |
|
|
start [/forum/topic.php?fid=46&fpage=3&tid=1683855]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
30ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 11ms |
total: | 135ms |
0 / 0 |