|
Философский фопрос по проектированию БД
|
|||
---|---|---|---|
#18+
Возможно ли по первоначальному ТЗ заложить такую структуру, которая в последствии будет только расширяться, но не изменяться. У меня часто получается, что пишешь ПО, вроде все норм, работает, потом пользователь говорит, все хорошо, но нужно добавить (убрать, изменить) одну маленькую деталь, и понеслась: меняем структуру таблиц, переделывать функции, отчеты, формы. Например была таблица: операция дата количество1 10.10.2018 1000 Пользователь: Все ок, но у нас операция может происходить в два этапа: операция дата количество1 10.10.2018 5001 10.10.2018 500 Или от этого никуда не деться, и все равно походу разработки придется иногда переделывать все? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2019, 16:42 |
|
Философский фопрос по проектированию БД
|
|||
---|---|---|---|
#18+
И еще, при связи один к одному: 1). Выносить объект связи в отдельную таблицу. 2). Хранить в той же таблице. 3). По ситуации. ? Пример: операция, реквизиты операции (дата, количество, ответственный), документ описания операции, реквизиты докуметна описания операции(номер, тип документа, прочее)? У одной операции может быть только один документ и наоборот. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.01.2019, 16:58 |
|
Философский фопрос по проектированию БД
|
|||
---|---|---|---|
#18+
faustgreenИли от этого никуда не деться, и все равно походу разработки придется иногда переделывать все? Заранее всё не предусмотришь. Усложнять на случай "возможно пригодится" тоже не стоит. Но иногда достаточно просто понять что конкретно хочет пользователь и предложить ему тоже самое но по-другому, так чтобы это вписывалось в существующую структуру БД. Например, в твоем примере, предложить сделать два документа, по одному на каждый этап. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.01.2019, 08:34 |
|
Философский фопрос по проектированию БД
|
|||
---|---|---|---|
#18+
faustgreenВозможно ли по первоначальному ТЗ заложить такую структуру, которая в последствии будет только расширяться, но не изменяться... Философский ответ: "Невозможно". Просто потом Вы начинаете "дописывать" новые "features", создаёте новые версии. Ваш код становится "spaghetti". Через несколько лет (по мере развития клиента) Вы создаёте новый продукт и пишете миграцию со старой версии на новую... И цикл разработки software повторяется. В принципе это хорошо, так как даёт Вам работу. Хорошо и для Ваших клиентов которые развивают и изменяют бизнес, подстраивая его под требования рынка. Я бы не стал углубляться в эту тему - для этого есть раздел на этом форуме, где обсуждается проектирование программного обеспечения. Good luck! P.S. А в вашем случае я бы уже сделал две таблицы - в первой бы хранил информацию об операции а во второй детали. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.02.2019, 10:31 |
|
|
start [/forum/topic.php?fid=41&gotonew=1&tid=1581700]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
61ms |
get topic data: |
11ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
others: | 295ms |
total: | 451ms |
0 / 0 |