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. |
|
|
|
![]() |
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 |
|
|
|
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
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 ![]() ![]() |
|
Aktualny czas: 31.12.2025 - 00:14 |