Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Struktura tabeli dla dokumentów
misiek172
post
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
nospor
post
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




join jedynie łączy tabele ze sobą przy zapytaniu.
Relację służa temu, iż jawnie mówisz, ze ta tabela jest powiązana z tą poprzez takie a takie pole. przyklad:
W fakturze masz fkuser, ktore odnosi sie do tabeli user. dzieki temu w fakturze trzymasz tylko identyfikator user. wszystkie jego dane leża w oddzielnej tabeli. zakladasz relacje. dzieki temu możesz powiedziec, ze nie wolno usunać danego usera, jesli ma on wpis w jakiejs fakturze. Tego pilnuje ci baza, ty nie musisz sie martwic. Jak bedziesz probowal usunac usera, ktory juz jest w fakturze to baza wypluje ci errora.

kolejny przyklad:
user pisze komentarze. w tabeli komentarzy masz znowu fkuser. zakladasz relacje i mowisz, ze gdy dany user zostanie usuniety, to mają zostac usuniete rowniez jego komentarze. I znowu zrobi to za ciebie baza. ty tylko usuwasz usera, a baza robi reszte - usuwa komentarze.

Podsumowując: relacje pomagają zarządzac baza, niedopuszczają do dziwnych sytuacji, ze np. masz komentarze z przypisanym id usera ktory juz nie istnieje. Dobre założenie relacji naprawdę uproszcza wiele rzeczy.
Oczywiscie relacje nie zrobią za ciebie pobrania informacji o userze przy wyswietlaniu komentarza - nadal musisz uzyc join


Co do faktury to zakladasz takie pola, jakie ma faktura. Moze sie to pokrywac z polami z forma i zazwyczaj tak jest.
A po co cie serializowac tablice i zapisywac do bazy to nie wiem. nie powinno sie tego robic. Na takich danych nie mozna robic zadnych sensownych operacji

ps: troche haotycznie mi to wyszlo, ale jestem zmeczony dzis tym liczeniem postow przy akcji z pomogl winksmiley.jpg


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

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 Aktualny czas: 19.08.2025 - 14:24