Дизайн базы данных счетов

Структура базы данных счетов может выглядеть примерно так ... http://www.databaseanswers.org/data_models/invoices_and_payments/index.htm

Теперь, если пользователь решит изменить / пересмотреть код / ​​описание продукта

Это изменит предыдущий заказ и код / ​​описание счета-фактуры :(

Что вы делаете? Вместо этого скопировать описание кода продукта в таблицу счетов?


person 001    schedule 06.02.2011    source источник
comment
Что не так с сохранением кодов / описаний продуктов в счете-фактуре? В частности, я вижу, что они хранятся в Invoice_Line_Items в соответствии с дизайном, на который указывает ссылка.   -  person Andriy M    schedule 06.02.2011
comment
дублирование, которое тратит впустую ресурсы, а также невозможно отследить, что было изменено.   -  person 001    schedule 07.02.2011


Ответы (1)


В основном у вас есть два варианта:

  • либо вы делаете свою Products таблицу «временной» (также известной как «временная база данных»), например вы сохраняете в таблице «предыдущее» состояние вашего индивидуального продукта и присваиваете каждой записи ValidFrom / ValidTo пару дат. Таким образом, если вы измените свой продукт, вы получите новую запись, а предыдущая останется нетронутой, на которую ссылаются те счета-фактуры, в которых она использовалась; обновляется только ValidTo дата продукта

or:

  • вы можете скопировать продукты (по крайней мере, те биты, которые вам нужны для вашего счета-фактуры) в счет-фактуру - это гарантирует, что вы всегда будете знать, как выглядел продукт, когда вы создавали счет-фактуру, - но это приведет к большому дублированию данных (не рекомендуется )

См. Этот другой вопрос Stackoverflow о временных базах данных в качестве другого ввода, а также ознакомьтесь с этой статьей на Simple-Talk: Дизайн базы данных: архитектура на определенный момент

person marc_s    schedule 06.02.2011
comment
Я никогда не думал, что это временная база данных, но мне она нравится! Большое спасибо!!! - person 001; 06.02.2011
comment
@ 001: временный - не временный :-) - person marc_s; 06.02.2011