Tabel maken en invullen

Status
Niet open voor verdere reacties.

ErrenRecondition

Nieuwe gebruiker
Lid geworden
31 jul 2013
Berichten
4
Hallo allemaal,

Ik ben momenteel bezig om met PHP en MySQL een webapplicatie te maken. Daar heb ik een aantal formulieren, die direct verstuurd worden. Nu heb ik een formulier dat in de database moet worden gezet voor later gebruik. Nu is het echter zo dat in het formulier meerdere regels van een pakbon worden ingevuld. Een regel op de pakbon is een rij uit een tabel. Dat betekent dat er voor elke pakbon een nieuwe tabel moet komen.

Nu is de vraag: Hoe maak ik in PHP een formulier dat er voor zorgt dat er een tabel wordt gemaakt, waarvan de tabelnaam afhankelijk is van de in het formulier ingevulde data?

Groet, Erren Recondition
 
Huh wat? een nieuwe tabel voor elke pakbon? Waarom gebruik je een relationele database en gooi je alles vervolgens in aparte dozen?

Bovendien, iets doen in een database gebaseerd op wat de gebruiker je verteld? Altijd een slecht idee. Het is wel mogelijk, maar ik zou eerst je design op orde krijgen voordat je zoiets uitrolt.
 
De reden dat er voor elke pakbon een nieuwe tabel moet komen, is dat het hier gaat om pakbonnen voor ongeveer 25 pallets per pakbon. Als ik dan gewoon een tabel gebruik wordt het vreselijk onoverzichtelijk.
 
Dan leg je daar toch relaties tussen?

Tabel pakbonnen
ID <> Intern REF ID <> klantID <> datum <> adres <> etc.

tabel PakbonOnderdelen
REF_ID <> palet nr <> andere relevante info

[SQL]
SELECT * FROM pakbononderdelen WHERE ref_id = ....
[/SQL]

vervolgens gooi je alle individuele items in "PakbonOnderdelen" met het gewenste ref-nummer en slaat in de hoofdtabel dit unieke nummer op om alle onderdelen terug te vinden. Onoverzichtelijk is het als je een database hebt met duizenden tabellen die niet schalen en je de queries telkens aan moet passen.

Vanuit database-perspectief kun je beter een enkele tabel pakbononderdelen hebben met een miljoen lijnen dan honderdduizend tabellen met ieder 10 regels.
 
lijkt mijn ook wampier beste oplossing pak bon heeft een nummer vrahtbrief heeft een nummer dus simpel als wat ik maak gebruik van de vracht biref nummer plus klant mooie te onderscheiden en digitaleseren van vracht brieven kun altijd zien wie er getekent heweft voor de troep of hoeveel het er moeten zijn
 
Dit topic heeft even stilgelegen. Ik ben mede-ontwikkelaar aan dit project dus ik zal even reageren.
De pakbonnen zijn niet zo simpel. Het gaat hier om het vervoeren van schoenen. Er komt dus op de pakbon een kolom voor artikelnummer, en daarna een boel kolommen met de maten 35 t/m 48. Daaronder komt dan te staan hoeveel paar van elke maat verzonden worden. Dan komt er nog een kolom waar het aantal dozen ingevuld wordt. Het is dus best ene flinke tabel.
 
Met Wampier's methode is dat toch prima te doen? Het is dan denk ik het handigst om het zo uit te splitsen dat iedere maat een eigen regel krijgt in de tabel PakbonOnderdelen. Dan krijg je dus zoiets:
Code:
[I]pakbonOnderdelen[/I]
id | ref_id | artNR | maat  | dozenBesteld
1  | 177673 | 28735 | 33    | 2
2  | 177673 | 28735 | 34    | 5
3  | 177673 | 28735 | 35    | 2
4  | 177673 | 65778 | 40    | 1
5  | 177673 | 65778 | 42    | 4

In de pakbonnen tabel kun je dan de algemene informatie kwijt, zoals klantgegevens, datum van bestelling, betalingsstatus, e.d.

Op die manier kun je dus bij een pakbon alle bestelde dozen vinden. Of, alle dozen die in een bepaalde periode zijn besteld. Of de hoeveelheid dozen van een bepaalde maat, of... nou ja, je begrijpt waar ik heen wil denk ik.

Als je voor iedere pakbon een eigen tabel maakt wordt dat allemaal een stuk moeilijker. Stel, je wilt alle pakbonnen van een bepaalde periode zien, dan moet je dus door alle tabellen gaan zoeken. Dit gaat een stuk langzamer dan in een tabel alle rijen met een bepaalde datum vinden (zeker als je een index op die kolom zet).

EDIT: En wat grote van de tabel betreft:
Vanuit database-perspectief kun je beter een enkele tabel pakbononderdelen hebben met een miljoen lijnen dan honderdduizend tabellen met ieder 10 regels.
 
Laatst bewerkt:
Er komt dus op de pakbon een kolom voor artikelnummer, en daarna een boel kolommen met de maten 35 t/m 48

Ik denk dat het erg verstandig zou zijn als je eerst een aritkel over databaseontwerp gaat doornemen want wat je nu voorstelt gaat absoluut niet werken.

Bedenk bovenal dat een database niet hetzelfde is als een speadsheet. Het is helemaal niet de bedoeling dat jij, als mens, via phpmyadmin naar de tabellen gaat kijken.
Bij gevolg maakt het dus helemaal niet of de dat er leesbaar in staat of genormaliseerd. het enige wat telt is dat je de data kunt opslaan op een betrouwbare en flexibele manier
en wanneer je behoefte hebt om de rauwe data te bekijken dan schrijf je daar een script voor.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan