Edycja danych

0

Witam

Mam następujący problem. Tabela Customer przechowuje dane klientów, potrzebne przy wystawianiu faktur. W momencie gdy chcę zmienić dane jakiegoś klienta z powodu np. zmiany adresu czy też nazwiska, stare dane muszą być zachowane ponieważ wszystkie faktury które zostały już wystawione (zapisane w bazie danych) na danego klienta muszą posiadać jego stare dane. Na razie wymyśliłem coś takiego:

W tabeli klient jest kolumna "version", która wraz z kolumną "id" jest kluczem głównym. Podczas edycji tworzony jest nowy rekord z danymi klienta natomiast kolumna "version" zwiększa swoją wartość o 1.

Tabela "faktury" zawiera klucz obcy do odpowiedniego id oraz wersji klienta. To rozwiązanie działa poprawnie, jednak w przypadku drobnych zmian w danych klienta (np. zmiany imienia Lukasz na Łukasz itp) cała procedura wydaje sie bezsensowna, wtedy można by zastosować zwykłe polecenie UPDATE. Czy ktoś ma pomysł jak to lepiej rozwiązać? Proszę o pomoc

Z góry dzięki i pozdrawiam

0

A co zrobisz, jak dane klienta trzeba poprawić poniewaz zostały na początku źle wpisane i klient odsyła faktury? Wtedy musisz zrobić UPDATE danych klienta. Podejrzewam, że trzeba przyjąć superoptymistyczne założenie, iż osoby obsługujące program są myślące, inteligentne i odpowiedzialne, i pozostawić im możliwość decydowania: UPDATE lub nowa wersja danych klienta.

0
  1. Wydziel adresy do nowej tabeli.
  2. Niech tabela klient zawiera ID aktualnego adresu
  3. Niech Faktura zawiera ID klienta i ID adresu na który została wystawiona.
  4. Zmiana adresu to tylko zmiana kolumny w tabeli klient.

1 użytkowników online, w tym zalogowanych: 0, gości: 1