Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Struktura bazy - dobre nawyki
Lonas
post
Post #1





Grupa: Zarejestrowani
Postów: 576
Pomógł: 14
Dołączył: 9.11.2005

Ostrzeżenie: (20%)
X----


Hej.
Napsalem program do faktur, magazynu w php oparty na my sql - z czasem widze jednak że wiele rzeczy źle rozwiazalem (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Chce sie zabrac za poprawy.

Chcialem spytać o pare rzeczy :

1) Czy np warto budować jedną tabele w ktorej przechowuje faktury vat i proformy ?

tworze taką strukture w której mam :

TABELA DOKUMENT

id_faktura
rodzaj_dokumentu - ( i tutaj ewentualnie wpisywać np 1 -vat, 2 -proforma )
id_kontrahent
numer
miesiac
rok

itd
Czy raczej powinno to byc w 2 tabelach proformy, vat ?

2) Jak najlepiej rozwiązać taki probiem - firma do dziś ma adres warszawska 5/44 - od jutra zmienia sie siedziba firmy na poznanska 4/55 - czyli wszystkie dokumenty do dzis maja stary adres a od jutra nowy,

Dane kontrahenta trzymam w tabeli

KONTRAHENT
id_kontrahent
nazwa
adres

w momencie zmiany stare dane ida w kosmos, myslalem zeby np dolozyc pole modyfikacja w ktorym bedzie data i jakos na tej podsawie operowac ktory wiersz ma byc wybrany do wyswietlenia na fakturze.


Tyle narazie chcialem sie dowiedziec - bede dopisywal pytania (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 1)
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

Ostrzeżenie: (0%)
-----


1.
Cytat
Czy np warto budować jedną tabele w ktorej przechowuje faktury vat i proformy ?


(nie znam sie na fakturach) Jesli Vat i proformy maja identyczne pola/dane to trzymaj w jednej tabeli z polem TYP.


2.
Cytat
2) Jak najlepiej rozwiązać taki probiem - firma do dziś ma adres warszawska 5/44 - od jutra zmienia sie siedziba firmy na poznanska 4/55 - czyli wszystkie dokumenty do dzis maja stary adres a od jutra nowy,


Rozumiem ze adres w fakturach nie moze sie zmieniac w czasie.
Zapisuj adres kontrachenta (aktualny na dzien wystawienia faktur) w fakturze -- niby bedzie to nadmiarowa informacja (baza nieznormalizowana) ale bedzie zachowana prawidlowosc regul biznesowych (czytaj: bedzie w porzadku (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) )

Ew. mozesz zrobic tak ze Kontrachent posiada wiele Adresow (dodawane wraz ze zmiana starego; kolejna tabela) i Kontrachent posiada pole (ktore jest FK do jednego z jego adresow; lub pobierasz najnowszy adres np. po dacie 'utworzenia' adresu).
W rozwiazaniu z FK bedziesz mial cykliczne powiazania: Adres wskazuje na kontrachenta, a Kontrachent na jeden z Adresow. Jak zezwolisz na NULLa w aktualny_adres to powinno byc ok.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 10:29