|
|
|
Улучшение нормализации БД
|
|||
|---|---|---|---|
|
#18+
Здравствуйте! Есть база по консалтинговым услугам. Вроде все работает, но по-мере усложнения решаемых задач все больше начинаю сомневаться в основе созданной структуры (заказчики, дела, услуги, договоры, счета, акты и оплаты). [img=c:\Users\user\Documents\оперативная\проект - БД Учет ИП\Структура.png] Какие задачи должна решать база: - регистрировать потенциальных заказчиков; - при обращении заказчика оформлять дело (дела); - в рамках 1-го дела фиксировать оказание 1 или более услуг как за оплату, так и без оплаты; - если услуги оказаны за плату, то оформлять договор и, при необходимости, счет (счета). Если оказаны услуги без оплаты, то договор, счет и акт не оформляются; - фиксировать оплаты заказчика по договору и счету; - после оказания услуг оформлять по договору акт (акты). Правильно ли создана структура? Можно ли улучшить нормализацию исходя из поставленных задач? Выскажите пжл свои мнения по усовершенствованию структуры? Спасибо за время! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2017, 18:01 |
|
||
|
Улучшение нормализации БД
|
|||
|---|---|---|---|
|
#18+
LelikMinsk, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2017, 18:04 |
|
||
|
Улучшение нормализации БД
|
|||
|---|---|---|---|
|
#18+
[ Правильно ли создана структура? нет Можно ли улучшить нормализацию исходя из поставленных задач? нужно. даже и без задач нужно. Выскажите пжл свои мнения по усовершенствованию структуры? 1НФ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2017, 18:11 |
|
||
|
Улучшение нормализации БД
|
|||
|---|---|---|---|
|
#18+
MasterZiv, Спасибо. Я не профессионал. Будьте так добры, покажите пжл на моем примере как должно соблюдаться условие 1НФ? Как д.б. изменены связи? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2017, 18:28 |
|
||
|
Улучшение нормализации БД
|
|||
|---|---|---|---|
|
#18+
LelikMinskЕсть база ... Вроде все работает, но ... все больше начинаю сомневаться в основе созданной структурыLelikMinskЯ не профессионалэто как: "не читал, но осуждаю", да? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2017, 18:47 |
|
||
|
Улучшение нормализации БД
|
|||
|---|---|---|---|
|
#18+
Дедушка, Нет. Расшифровываю: я читал про нормализацию, в т.ч. 1 НФ, 2НФ и 3 НФ, но мои знания и опыт не позволяют применить это к моему любительскому проекту. Как-то так... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2017, 19:02 |
|
||
|
Улучшение нормализации БД
|
|||
|---|---|---|---|
|
#18+
LelikMinskНавскидку. Зачем связь между заказчиком и договором ? Если правильно понял, она и так уже реализуется через "дело" и "услуга". Соответственно, связь, скорее, должна быть от "услуга" к "договор", как и в Вашем описании. Непонятно объединение актов и счетов, судя по описанию, это разные сущности. К услугам явно не хватает справочника вида услуг с тарифом. Разумеется, в соответствии с изменением связей между таблицами и выделения справочника услуг, в таблицах меняется список полей. Понятно, что это минимум/миниморум, на уровне учебных поделок. Схема БД реального мира наверняка будет гораздо сложней. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2017, 01:58 |
|
||
|
Улучшение нормализации БД
|
|||
|---|---|---|---|
|
#18+
ChALelikMinskНавскидку. Зачем связь между заказчиком и договором ? Если правильно понял, она и так уже реализуется через "дело" и "услуга". Соответственно, связь, скорее, должна быть от "услуга" к "договор", как и в Вашем описании. Непонятно объединение актов и счетов, судя по описанию, это разные сущности. К услугам явно не хватает справочника вида услуг с тарифом. Разумеется, в соответствии с изменением связей между таблицами и выделения справочника услуг, в таблицах меняется список полей. Понятно, что это минимум/миниморум, на уровне учебных поделок. Схема БД реального мира наверняка будет гораздо сложней. Спасибо. Связь между заказчиком и договором необходима исходя из того, что с 1 заказчиком м.б. заключено несколько договоров, 1 договор с заказчиком может включать несколько услуг. Между отношениями Заказчики>Дела>Услуги связь 1>многим, а между Услуги>Договоры связь многие<1. Может тогда лучше разорвать связь между Заказчики>Договоры и сделать между Дела>Договоры связь 1>многим или нет? Счета и акты скорее разные сущности, хотя как рассматривать. Наверное их надо менять, но не знаю как будет правильнее. Может разорвать связь и сделать между Заказчики>Счета связь 1>многим? Услуги в данном случае, как мне кажется, необходимо рассматривать, как "Заказы", а не "Товары", потому как услуга здесь индивидуальна или атомарна. Но тарифы за единицу есть, я здесь не показывал, чтобы не загружать лишней информацией. Про список полей понятно. Схема БД гораздо сложнее. Меня волнует именно начало (основа) структуры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2017, 13:35 |
|
||
|
Улучшение нормализации БД
|
|||
|---|---|---|---|
|
#18+
LelikMinskСвязь между заказчиком и договором необходима исходя из того, что с 1 заказчиком м.б. заключено несколько договоров, 1 договор с заказчиком может включать несколько услуг .Не было описано ранее. Арность связи в данном случае роли не играет, просто из первичного описания следует несколько иное. Сначала заводится дело, потом оказывается услуга, а уже по её выполнению за плату формируется договор с оплатами. А по Вашей схеме получается несколько иное. Пока вы не создадите договор, вы не можете оформить услугу. Т.е., первичным получается договор, а не услуга. Формально, конечно, можно, не указав ид договора(NULL) при создании услуги, указать его позже, но тогда нарушается последовательность оформления процесса, IMHO. А схема БД, в принципе, должна диктовать это порядок. Понятно, что всё можно "разрулить" через интерфейс, но это неверный паттерн. Создавать документы желательно в порядке их естественного возникновения, чтобы пользователь не держал в голове, что сначала он должен создать документ Б, а только потом документ А, а потом из документа Б установить связь с документом А. Ошибки эксплуатации гарантированы.LelikMinskМежду отношениями Заказчики>Дела>Услуги связь 1>многим, а между Услуги>Договоры связь многие<1. Может тогда лучше разорвать связь между Заказчики>Договоры и сделать между Дела>Договоры связь 1>многим или нет? Не знаю, это Вам виднее, это Ваша вотчина. Но она противоречит описанию, сначала оформление услуги, а потом договора. Определитесь в последовательности наступления событий.LelikMinskСчета и акты скорее разные сущности, хотя как рассматривать. Наверное их надо менять, но не знаю как будет правильнее. Может разорвать связь и сделать между Заказчики>Счета связь 1>многим? То что сущности имеют одинаковый состав атрибутов ещё не повод объединять их в одну таблицу. Со временем что-то может измениться и появятся специфические атрибуты для определённой сущности и таблица превратиться в винегрет. Решать, безусловно Вам, ибо виднее по факту и месту, но возможно всё-таки стоит разделить, тем более, что в таблице даже нет поля, указывающего счет это или акт. Как их будете различать ? Впрочем, не буду настаивать, на месте виднее.LelikMinskУслуги в данном случае, как мне кажется, необходимо рассматривать, как "Заказы", а не "Товары", потому как услуга здесь индивидуальна или атомарна. Но тарифы за единицу есть, я здесь не показывал, чтобы не загружать лишней информацией. Про список полей понятно.Есть тариф, значит должен быть некий справочник, где они должны быть описаны. В текущей схеме он не указан, поэтому было уточннение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2017, 15:02 |
|
||
|
Улучшение нормализации БД
|
|||
|---|---|---|---|
|
#18+
ChALelikMinskСвязь между заказчиком и договором необходима исходя из того, что с 1 заказчиком м.б. заключено несколько договоров, 1 договор с заказчиком может включать несколько услуг .Не было описано ранее. Понял. Наверное неточно описал: ...- в рамках 1-го дела фиксировать оказание 1 или более услуг как за оплату, так и без оплаты; - если услуги оказаны за плату, то оформлять договор... ChAАрность связи в данном случае роли не играет, просто из первичного описания следует несколько иное. Сначала заводится дело, потом оказывается услуга, а уже по её выполнению за плату формируется договор с оплатами. А по Вашей схеме получается несколько иное. Пока вы не создадите договор, вы не можете оформить услугу. Т.е., первичным получается договор, а не услуга. Формально, конечно, можно, не указав ид договора(NULL) при создании услуги, указать его позже, но тогда нарушается последовательность оформления процесса, IMHO. А схема БД, в принципе, должна диктовать это порядок. Понятно, что всё можно "разрулить" через интерфейс, но это неверный паттерн. Создавать документы желательно в порядке их естественного возникновения, чтобы пользователь не держал в голове, что сначала он должен создать документ Б, а только потом документ А, а потом из документа Б установить связь с документом А. Ошибки эксплуатации гарантированы.LelikMinskМежду отношениями Заказчики>Дела>Услуги связь 1>многим, а между Услуги>Договоры связь многие<1. Может тогда лучше разорвать связь между Заказчики>Договоры и сделать между Дела>Договоры связь 1>многим или нет? Не знаю, это Вам виднее, это Ваша вотчина. Но она противоречит описанию, сначала оформление услуги, а потом договора. Определитесь в последовательности наступления событий. Понял. Согласен. Последовательность событий следующая: 1) ввод заказчика; 2) обратился заказчик с вопросом (делом) - ввод дела; 3) выполняется дело - оказываются 1 или более услуг; 4) если 1 или более услуг за оплату, заключается договор на услуги за оплату, возможно 2 договора на каждую услугу или на несколько за оплату; если оказаны услуги без оплаты, на этом процесс заканчивается; 6) счета, акты и т.д. Требования к отношениям: 1) дело удаляется - удаляются услуги и договор (договоры), связанные с делом; 2) договор удаляется - дело и услуги не удаляются; 3) удаляются услуги - договор ...не знаю)...сейчас через интерфейс (форму) "открепляю" услуги от договора. Я через интерфейс и "разлулил" эту задачу, но такой способ меня не устраивает, поэтому я и обратился к вам за помощью как лучше нормализовать. Исходя именно из указанного описания процессов и требований к отношениям, как бы вы оформили связи между отношениями: Дела-Услуги-Договоры? ChALelikMinskСчета и акты скорее разные сущности, хотя как рассматривать. Наверное их надо менять, но не знаю как будет правильнее. Может разорвать связь и сделать между Заказчики>Счета связь 1>многим? То что сущности имеют одинаковый состав атрибутов ещё не повод объединять их в одну таблицу. Со временем что-то может измениться и появятся специфические атрибуты для определённой сущности и таблица превратиться в винегрет. Решать, безусловно Вам, ибо виднее по факту и месту, но возможно всё-таки стоит разделить, тем более, что в таблице даже нет поля, указывающего счет это или акт. Как их будете различать ? Впрочем, не буду настаивать, на месте виднее. Если Счета и Акты разделить, Акты вроде понятно - надо связывать с Договорами, а счета с чем лучше связать с Заказчиками или тоже с Договорами? ChALelikMinskУслуги в данном случае, как мне кажется, необходимо рассматривать, как "Заказы", а не "Товары", потому как услуга здесь индивидуальна или атомарна. Но тарифы за единицу есть, я здесь не показывал, чтобы не загружать лишней информацией. Про список полей понятно.Есть тариф, значит должен быть некий справочник, где они должны быть описаны. В текущей схеме он не указан, поэтому было уточннение. Понял. Согласен. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.01.2017, 17:36 |
|
||
|
Улучшение нормализации БД
|
|||
|---|---|---|---|
|
#18+
Пока ещё есть неясности. В рамках исполнения договора может быть только 1 услуга или 1 договор может относиться к нескольким услугам ? Может ли существовать договор без услуги ?LelikMinsk 3) удаляются услуги - договор ...не знаю)Надо знать, а то пока до конца не понятна взаимосвязь между услугами и договорами. Пока создается ощущение, что договора и услуги взаимонезависимы. Т.е., в рамках дела могут оформляться как услуга(бесплатно), так и договор(платно) и это 2 параллельные независимые ветки, попытка связать их воедино выглядят искусственно. Другой вопрос, что возможно между ними и делом дб ещё одна сущность, которая позволяет их собрать в рамках одной подзадачи, и уже от неё идут параллельные связи к услугам и договорам. С актами и счетами пока тоже непонятно. Что и для чего в Вашей предметной области ? Счета выставляются по результатам исполнения конкретного договора или в рамках общей задачи ? Оплаты не отражены в схеме. Возможны ли переплаты или авансы? Акт описывает результат выполнения договора, услуги, или задачи, в рамках которой они объединены ? P.S. Лучше Вас тут вряд ли кто знает Вашу "кухню", поэтому не ждите здесь готового решения, здесь могут только направить или поправить. За готовыми решениями отсюда обычно отправляют на этот форум . Но там уже придется делать всё "по взрослому", вменяемое ТЗ и сумма компенсации за потраченное на него время и труд. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2017, 00:55 |
|
||
|
Улучшение нормализации БД
|
|||
|---|---|---|---|
|
#18+
ChAПока ещё есть неясности. В рамках исполнения договора может быть только 1 услуга или 1 договор может относиться к нескольким услугам ? Может ли существовать договор без услуги ?LelikMinsk 3) удаляются услуги - договор ...не знаю)Надо знать, а то пока до конца не понятна взаимосвязь между услугами и договорами. Пока создается ощущение, что договора и услуги взаимонезависимы. Т.е., в рамках дела могут оформляться как услуга(бесплатно), так и договор(платно) и это 2 параллельные независимые ветки, попытка связать их воедино выглядят искусственно. Другой вопрос, что возможно между ними и делом дб ещё одна сущность, которая позволяет их собрать в рамках одной подзадачи, и уже от неё идут параллельные связи к услугам и договорам. С актами и счетами пока тоже непонятно. Что и для чего в Вашей предметной области ? Счета выставляются по результатам исполнения конкретного договора или в рамках общей задачи ? Оплаты не отражены в схеме. Возможны ли переплаты или авансы? Акт описывает результат выполнения договора, услуги, или задачи, в рамках которой они объединены ? P.S. Лучше Вас тут вряд ли кто знает Вашу "кухню", поэтому не ждите здесь готового решения, здесь могут только направить или поправить. За готовыми решениями отсюда обычно отправляют на этот форум . Но там уже придется делать всё "по взрослому", вменяемое ТЗ и сумма компенсации за потраченное на него время и труд. Договор может относиться к нескольким услугам. Договор без услуги не может существовать. Если удаляются все услуги, надо удалять и договор. Счета выставляются на основании конкретного договора как до оказания услуг (предоплата), так и после (оплата "по результатам исполнения"). Переплаты возможны. Часть оплаты "гасит" акт (акты), а если остается "переплата", то она "зависает" получается на заказчике. Акт описывает результат выполнения договора. Понял. Если можете, ответьте. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2017, 12:01 |
|
||
|
Улучшение нормализации БД
|
|||
|---|---|---|---|
|
#18+
LelikMinsk, Таблица Дела не нужна... - Дата начала дела по заказчику это дата первого договора с этим заказчиком... - Наименование дела это наименование заказчика + его ИНН... если чо... Связь Договоры - Услуги это перечень всех услуг оказываемых по договору заказчику вааще... С точки зрения унификации этот набор услуг можно сделать для всех одинаковым и по максимуму, тогда получим унифицированный договор для всех заказчиков, в котором нужно менять только параметры заказчика перед подписанием. А по сему связь Договоры - Услуги не нужна, таблица услуги вырисовывается просто в главную таблицу с перечнем и ценами на все услуги - типа Прайс и в договоре её можно оформить как Приложение к договору - оказываемые услуги, со ссылками на это приложение по тексту договора... В таблице Счета и акты убрать поле Стоимость услуг это вычисляемая величина и она не должна храниться в шапке документа. Добавить таблицу Оказанные услуги и сделать две связи Счета и акты - Оказанные услуги + Услуги - Оказанные услуги . Это просто очевидно... - код (счетчик) - Код счета и акта - Код Услуги - количество - цена (соответствует цене услуги из прайса - Услуги на момент оказания услуги) Теперь на базе двух таблиц Счета и акты + Оказанные услуги можно печатать любые документы заказчику: Счет, Акт,... меняется только шапка в отчете... Всё с оплачиваемой частью закончили... для всех бесплатных дел заводим одну таблицу с именем например бла_бла... и вешаем её подчиненной на Заказчика - дата - код заказчика - че хотел - куда послали... Вроде всё... так бегло и ради того чтоб взлетело... сори за художества... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2017, 00:33 |
|
||
|
Улучшение нормализации БД
|
|||
|---|---|---|---|
|
#18+
LelikMinskДоговор может относиться к нескольким услугам. Договор без услуги не может существовать. Если удаляются все услуги, надо удалять и договор. Счета выставляются на основании конкретного договора как до оказания услуг (предоплата), так и после (оплата "по результатам исполнения"). Переплаты возможны. Часть оплаты "гасит" акт (акты), а если остается "переплата", то она "зависает" получается на заказчике. Акт описывает результат выполнения договора.Итого. Есть Клиенты, которые имеют Дела, по которым оказываются Услуги разных видов. Также существуют Договора, которые обязательно оформляются на Услугу, т.е., для каждого договора существует первичная Услуга. Но каждому договору может соответствовать несколько услуг, а услуге может соответствовать несколько договоров. Значит это уже связь типа многие<=>многие, которая обычно делается через дополнительную таблицу между Услугами и Договорами. Кроме того Клиент выполняет Оплаты, которые закрываются Счета, получаемые на основании Договора. Счет по Договору всегда один ? И ещё важный момент, надо ли фиксировать какие Оплаты какие Счета закрывают ? Если "да", то между Счетами и Оплатами придется также добавлять таблицу покрытий типа многие<=>многие. И, наконец, результатом выполнения Договора является Акт. Всегда ? Только один ? Вопросы необходимости справочника типов стандартных услуг и тарифов на них целиком на Вашей совести. В целом, этого уже вполне достаточно, чтобы самому расписать основную схему БД, ответив для себя на дополнительные вопросы по ходу. Расписывать по таблицам, полям и связям извините, не буду. Увы, но с моей стороны это уже за гранью бесплатных ответов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2017, 00:39 |
|
||
|
Улучшение нормализации БД
|
|||
|---|---|---|---|
|
#18+
LelikMinsk, заказчик -> дело -> договор -> услуги -> оплата -> -> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2017, 00:51 |
|
||
|
Улучшение нормализации БД
|
|||
|---|---|---|---|
|
#18+
ChA..... Но каждому договору может соответствовать несколько услуг, а услуге может соответствовать несколько договоров. Значит это уже связь типа многие<=>многие, которая обычно делается через дополнительную таблицу между Услугами и Договорами. .... по моему связь будет один -> многие.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2017, 00:58 |
|
||
|
Улучшение нормализации БД
|
|||
|---|---|---|---|
|
#18+
LelikMinskMasterZiv, Спасибо. Я не профессионал. Будьте так добры, покажите пжл на моем примере как должно соблюдаться условие 1НФ? Как д.б. изменены связи? Таблица "Счета и акты" смущает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2017, 10:00 |
|
||
|
Улучшение нормализации БД
|
|||
|---|---|---|---|
|
#18+
vmag, Большое вам спс! Конечно кардинально, но все же)... По поводу таб.Дела понял, но не согласен, ибо хотелось бы однообразия, последовательности...как то так. По поводу поля Стоимость услуг знаю. Изначально его не было, но в процессе появилось из-за какой-то проблемы, не помню уже точно. К которой надо опять вернуться и действительно убрать поле. По поводу таб.Оказанные услуги надо переварить... Еще раз спс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2017, 11:33 |
|
||
|
Улучшение нормализации БД
|
|||
|---|---|---|---|
|
#18+
В итого вот этого ChA ...а услуге может соответствовать несколько договоров. НЕТ, а есть вот это LelikMinsk...возможно 2 договора на каждую услугу или на несколько за оплату.... Поэтому таблицы многие<=>многие, наверное не надо. ChAСчет по Договору всегда один ? Понял, но не согласен. Вообще закрывать надо акты, а не счета, так как счет это документ ТОЛЬКО для оплаты услуг (товаров) как неоказанных, так и оказанных, а акт - документ, подтверждающий оказание услуг, типа: оказано-оплачено. Следовательно, "закрывать" оплатой надо бы акты, а не счета. Но это вопрос на "вкус". Обычно 1 счет на 1 акт, но м.б. 1 счет на 2 и более акта в рамках 1 договора. ChAИ ещё важный момент, надо ли фиксировать какие Оплаты какие Счета закрывают ? Если "да", то между Счетами и Оплатами придется также добавлять таблицу покрытий типа многие<=>многие. Не надо фиксировать. Поэтому и считаю, что надо "закрывать" акты, а не счета. По поводу доп.таблицы понял. ChAИ, наконец, результатом выполнения Договора является Акт. Всегда ? Только один ? По услугам, как описано в моих задачах, всегда. Не в услугах не всегда. По услуге 1 акт, а по всему договору возможно 2 и более. Например, 1 услуга - 1 акт, 2 услуги - 2 акта, 2 услуги - 1 акт. ChAИ, наконец, результатом выполнения Договора является Акт. Всегда ? Только один ? Вопросы необходимости справочника типов стандартных услуг и тарифов на них целиком на Вашей совести. Понял. Приму к сведению. Большое спс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2017, 12:10 |
|
||
|
Улучшение нормализации БД
|
|||
|---|---|---|---|
|
#18+
SeloaLelikMinsk, заказчик -> дело -> договор -> услуги -> оплата -> -> А как же будет выполняться задача: при оказании услуг без оплаты, договор не добавляется? Спс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2017, 12:15 |
|
||
|
Улучшение нормализации БД
|
|||
|---|---|---|---|
|
#18+
LelikMinskПо поводу таб.Оказанные услуги надо переварить... А что там переваривать? Таблица Счета и акты это шапка документа (номер документа, дата документа, реквизиты из таблицы Заказчики через Договоры) Таблица Оказанные услуги - это строки документа (табличная часть), там перечисляются услуги из прайса, которые оказаны и их нужно оплатить по данному счету. Соответственно сумма по документу [Количество] * [Цена] по всем строкам документа - это и есть сумма и Счета и Акта, которую не обязательно хранить в самой шапке ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2017, 12:20 |
|
||
|
Улучшение нормализации БД
|
|||
|---|---|---|---|
|
#18+
SeloaChA..... Но каждому договору может соответствовать несколько услуг, а услуге может соответствовать несколько договоров. Значит это уже связь типа многие<=>многие, которая обычно делается через дополнительную таблицу между Услугами и Договорами. .... по моему связь будет один -> многие.. Да, потому как нет задачи "услуге может соответствовать несколько договоров", а есть задача "1 договор - 1 услуга, 1 договор - 2 и более услуг". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2017, 12:21 |
|
||
|
Улучшение нормализации БД
|
|||
|---|---|---|---|
|
#18+
MasterZivLelikMinskMasterZiv, Спасибо. Я не профессионал. Будьте так добры, покажите пжл на моем примере как должно соблюдаться условие 1НФ? Как д.б. изменены связи? Таблица "Счета и акты" смущает. Понял. Согласен. Спс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2017, 12:22 |
|
||
|
Улучшение нормализации БД
|
|||
|---|---|---|---|
|
#18+
vmagLelikMinskПо поводу таб.Оказанные услуги надо переварить... А что там переваривать? Таблица Счета и акты это шапка документа (номер документа, дата документа, реквизиты из таблицы Заказчики через Договоры) Таблица Оказанные услуги - это строки документа (табличная часть), там перечисляются услуги из прайса, которые оказаны и их нужно оплатить по данному счету. Соответственно сумма по документу [Количество] * [Цена] по всем строкам документа - это и есть сумма и Счета и Акта, которую не обязательно хранить в самой шапке ... Понял. Согласен. Спс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2017, 12:24 |
|
||
|
Улучшение нормализации БД
|
|||
|---|---|---|---|
|
#18+
LelikMinskSeloaLelikMinsk, заказчик -> дело -> договор -> услуги -> оплата -> -> А как же будет выполняться задача: при оказании услуг без оплаты, договор не добавляется? Спс. видимо в смущение вводят одинаковые названия сущностей. услуги лучше превратить в строки_договора, справочник на них назвать услуги и пристегнуть к дело таблицу советы со справочником услуги. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2017, 13:35 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=39391972&tid=1540217]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
67ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
1ms |
| others: | 13ms |
| total: | 174ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...