Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Struktura tabeli dla dokumentów
misiek172
post 24.09.2008, 14:56:40
Post #1





Grupa: Zarejestrowani
Postów: 656
Pomógł: 3
Dołączył: 26.10.2005
Skąd: Częstochowa

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


Witam.

Mam mała łamigłówkę i pomyślałem, że poproszę o pomoc bardziej doświadczonych w aplikacjach internetowych.

Pisze program do księgowości i magazynowania, mam problem, jestem na etapie zaprojektowania tabeli baz danych dla dokumentów, zaczynam pierw od Faktury, cały formularz jest już gotowy.

Problem leży w tym, że chce zrobić ją aby była jak najbardziej wygodna do zapisu i odczytu. Dane z faktury będą również używane przy innych dokumentach i odwrotnie, np. wystawianie Faktury na podstawie WZ (wydane na zewnątrz). Jak mają nazywać się kolumny w tabeli aby były wygodne? Tak jak pola w formularzu?

Nie wiem jak dobrze wytłumaczyć mój problem. Ogółem proszę o zasugerowanie struktury tabeli w MySQL dla przechowywanie dokumentów.

Pozdrawiam, Łukasz.

PS: Jak najlepiej przechowywać tablice w MySQL? Serialize odpada bo nie potrzebnie dużo zajmuje i krzaczy się ze znakami typu: " \ etc.


--------------------
zmoderowano - waga i rozmiar
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Mchl
post 25.09.2008, 20:44:30
Post #2





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

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


W mySQL funkcjonalne relacje obsługuje InnoDB. W myISAM można użyc składnie REFERENCES ale właściwie tylko dla dokumentacji.

Jeśli chodzi o przechowywanie faktur itp, ja to robię tak.

Jedna tabela na dane "nagłówkowe" + dodatki o których za chwilę
Kod
DROP TABLE IF EXISTS `faktury`;
CREATE TABLE  `faktury` (
   `ID` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Klucz podstawowy',
   `IDodbiorcy` int(10) unsigned NOT NULL COMMENT 'ID odbiorcy',
   `status` enum('BUFOR','ANULOWANE','ZATWIERDZONE') NOT NULL DEFAULT 'BUFOR' COMMENT 'Stan dokumentu',
   `nrDokumentu` varchar(20) NOT NULL COMMENT 'Nr dokumentu',
   `dataSprzedazy` date NOT NULL COMMENT 'Data Sprzedazy',
   `dataWystawienia` date NOT NULL COMMENT 'Data Wystawienia',
   `sprzedawcaNazwa` varchar(255) NOT NULL COMMENT 'Nazwa sprzedawcy',
   `sprzedawcaAdres` varchar(255) NOT NULL COMMENT 'Adres sprzedawcy',
   `sprzedawcaNIP` varchar(25) NOT NULL COMMENT 'NIP sprzedawcy',
   `sprzedawcaBank` varchar(255) NOT NULL COMMENT 'Bank sprzedawcy',
   `sprzedawcaKonto` varchar(100) NOT NULL COMMENT 'Konto sprzedawcy',
   `sposobZaplaty` enum('GOTOWKA','PRZELEW','GOTOWKA/PRZELEW') NOT NULL COMMENT 'Sposób zapłaty',
   `terminZaplaty` varchar(511) NOT NULL COMMENT 'Termin zapłaty',
   `odbiorcaIndeks` char(7) NOT NULL COMMENT 'Indeks odbiorcy',
   `odbiorcaNazwa` varchar(255) NOT NULL COMMENT 'Nazwa odbiorcy',
   `odbiorcaKodPocztowy` char(6) NOT NULL COMMENT 'Kod pocztowy odbiorcy',
   `odbiorcaMiejscowosc` varchar(255) NOT NULL COMMENT 'Miejscowość odbiorcy',
   `odbiorcaAdres` varchar(255) NOT NULL COMMENT 'Adres odbiorcy',
   `odbiorcaNIP` char(13) NOT NULL COMMENT 'NIP odbiorcy',
   `rabat` decimal(3,2) NOT NULL DEFAULT '0.00' COMMENT 'Rabat',
   `osobaWystawiajaca` varchar(255) NOT NULL COMMENT 'Osoba wystawiająca',
   `upowaznienie` tinyint(1) NOT NULL DEFAULT '0' COMMENT 'Zgoda na wystawianie faktury bez podpisu',
   `szablonWydruku` varchar(30) NOT NULL COMMENT 'Sablon wydruku',
   `wydrukRabat` enum('WIERSZE','PODSUMOWANIE','UKRYTY') NOT NULL DEFAULT 'WIERSZE' COMMENT 'Opcje wydruku rabatu',
   `sumaEgz` int(6) NOT NULL,
   `sumaNetto` decimal(8,2) NOT NULL,
   `sumaVat` decimal(8,2) NOT NULL,
   `sumaBrutto` decimal(8,2) NOT NULL,
   PRIMARY KEY (`ID`));


Druga tabele na dane "wierszowe" (świadomie nie do końca znormalizowana)

Kod
DROP TABLE IF EXISTS `faktury_wiersze`;
CREATE TABLE  `faktury_wiersze` (
   `ID` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT 'Klucz podstawowy',
   `dokumentID` int(10) unsigned NOT NULL COMMENT 'Wskazuje na fakturę',
   `towarID` int(10) unsigned NOT NULL COMMENT 'Wskazuje na towar',
   `indeks` char(6) NOT NULL COMMENT 'Indeks towaru',
   `towarDoWydruku` varchar(255) NOT NULL COMMENT 'Towar w wersji do wydruku',
   `ilosc` int(5) NOT NULL COMMENT 'Ilosc',
   `PKWiU` varchar(10) NOT NULL COMMENT 'Symbol PKWiU',
   `cenaNetto` decimal(6,2) NOT NULL COMMENT 'Cena netto',
   `stawkaVat` decimal(3,2) NOT NULL COMMENT 'Stawka VAT',
   `wartoscNetto` decimal(8,2) NOT NULL,
   `wartoscVat` decimal(8,2) NOT NULL,
   `wartoscBrutto` decimal(8,2) NOT NULL,
   PRIMARY KEY (`ID`))


Obciąłem trochę z rzeczywistych definicji, a;e mniej więcej tak to wygląda.

Ten post edytował Mchl 25.09.2008, 20:45:06
Go to the top of the page
+Quote Post

Posty w temacie
- misiek172   Struktura tabeli dla dokumentów   24.09.2008, 14:56:40
- - krzyszbi   ja często robię tak ze mam podobne nazwy jak w for...   25.09.2008, 11:13:19
- - misiek172   Jeszcze dzisiaj spróbuje zaprojektować coś tym pro...   25.09.2008, 11:15:05
- - nospor   join jedynie łączy tabele ze sobą przy zapytaniu. ...   25.09.2008, 20:35:09
- - Mchl   W mySQL funkcjonalne relacje obsługuje InnoDB. W m...   25.09.2008, 20:44:30
- - misiek172   dzięki ślicznie bardzo mi pomogły wasze informacje...   26.09.2008, 10:52:32
- - phpion   Ale poszalałeś z kluczami głównymi zaleca się aby...   26.09.2008, 11:15:30
- - misiek172   one same mi się potworzyły gdy stworzyłem relacje,...   26.09.2008, 11:43:28
- - nospor   @phion to nie są klucze glowne a klucze obce glow...   26.09.2008, 11:47:36
|- - phpion   Cytat(nospor @ 26.09.2008, 12:47:36 )...   26.09.2008, 12:07:16
- - misiek172   mój projekt wgrałem do bazy, włączylem PMA i przet...   26.09.2008, 11:59:20
- - misiek172   w ten sposób? Projekt DB2   26.09.2008, 12:17:51
- - nospor   Cytatwedług informacji nospor z tego co zrozumiałe...   26.09.2008, 12:18:58
- - phpion   Cytat(misiek172 @ 26.09.2008, 13:17:5...   26.09.2008, 12:25:45
- - misiek172   Ogromne podziękowania za waszą pomoc. Ma...   26.09.2008, 13:27:13
|- - piaseq   Cytat(misiek172 @ 26.09.2008, 14:27:1...   26.09.2008, 20:53:15
|- - phpion   Cytat(misiek172 @ 26.09.2008, 14:27:1...   26.09.2008, 21:10:21
- - misiek172   niestety nie mam innego wyboru, ponieważ firm...   27.09.2008, 08:07:04


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

 



RSS Wersja Lo-Fi Aktualny czas: 13.08.2025 - 23:53