Probleem met database ontwerp factuurnummer

Status
Niet open voor verdere reacties.

sevnthe2nd

Gebruiker
Lid geworden
21 mrt 2020
Berichten
5
Voor mijn studie ben bezig met het maken van een database voor een magazine. Het magazine moet facturen kunnen sturen naar contacten, omdat zij er een abonnement op hebben, maar ik moet ook een factuur kunnen sturen naar een bedrijf, omdat bedrijven bijvoorbeeld een advertentie kunnen plaatsen in het magazine. Ik heb hiervoor onder andere de volgende tabellen aangemaakt:

Contact
Contacten_id, voornaam, achternaam, etc

Bedrijven
Bedrijven_id, bedrijfsnaam, plaats, postcode, etc

Factuur
Factuurnummer, etc

Factuurregel
Factuurnummer, productcode, etc

Nu wil ik een factuur kunnen maken voor een bedrijf, maar ik wil ook een factuur kunnen maken voor een contact. Hier loop ik vast. Moet ik nu in de tabel Factuur een kolom maken maken met Bedrijf_id en een kolom met Contact_id, en als ik een factuur aanmaak voor een contact, dan de waarde bij Bedrijf_id leeg laten of moet ik dit op een andere manier oplossen?
 
Wat is, voor jouw project, het verschil tussen een bedrijf en een contact? Want uit je tabellen haal ik dat niet. Je hebt het in beide gevallen over een entiteit met NAW gegevens. Sterker nog: volgens mij kan een bedrijf ook een abonnement hebben op een tijdschrift. In dat geval zijn de bedrijfsgegevens zelfs helemaal identiek :).
 
Wat is, voor jouw project, het verschil tussen een bedrijf en een contact? Want uit je tabellen haal ik dat niet. Je hebt het in beide gevallen over een entiteit met NAW gegevens. Sterker nog: volgens mij kan een bedrijf ook een abonnement hebben op een tijdschrift. In dat geval zijn de bedrijfsgegevens zelfs helemaal identiek :).

Hoi Octafish,

Meerdere contactpersonen kunnen meerdere bedrijven hebben, dus die zijn met elkaar gekoppeld doormiddel van een koppeltabel. Vandaar dat ik het zo dacht op te lossen.

Een bedrijf kan idd ook een abonnement hebben, evenals een contact, dus daar heb je zeker gelijk in.
 
Even een kleine uitleg aan jou (ik zie nu dat je nieuw bent, en dan moet je uiteraard de fout maken die alle nieuwelingen maken ;)). De super kleine QUOTE knop is geen antwoordknop. Onder die knop staat een ongeveer 10 keer zo grote, mooie blauwe knop <Reageer op bericht>. Die is vele malen beter om te gebruiken. Nog mooier: twee centimer lager staat een immens groot tekstvak <Snel reageren>, en dan kun je gelijk gaan typen. Kortom: er is géén, ik herhaal: GEEN enkele reden om de Quote knop te gebruiken. Tenzij je echt iets wilt quoten uit een ouder bericht. Maar mijn complete eenregelige bericht herhalen, lijkt mij nogal overbodig :). Dus niet meer doen. (Nogmaals: echt elke nieuweling kan er niet van af blijven :)).

Meerdere contacten meerdere bedrijven? Werk je voor de Quote 500? :D. Ik zou het eerder andersom zien, en dat een bedrijf meerdere contactpersonen heeft. Maar dat maakt verder toch niet uit? Het gaat er om dat je facturen kunt sturen naar één persoon/bedrijf. Mij lijkt het niet uit te maken of dat een afnemer is, of een leverancier. Je zou dan in de tabel met twee extra vinkjes een status kunnen toevoegen. Om afnemers van leveranciers te onderscheiden filter je dan op een selectievakje.

Wellicht is het handiger als je de structuur even post, dan wordt het wellicht wat duidelijker wat je hebt bedacht.
 
Dag 7thThe2nd,
dus in je database heb je 2 types klanten: degenen die een abonnement hebben en degenen die advertenties plaatsen. In feite komt dit neer dat je verschillende producten levert: abonnement / advertentieruimte. Dus in je opzet mis ik een tabel Producten. Als je die hebt, dan kan je een bedrijf een factuur sturen voor beide producten.
Ik kan me best inleven in de situatie van één contact voor meerdere bedrijven en één bedrijf met meerderede contacten. In de non-profit wereld is dit eerder de regel dan de uitzondering. Dus dat zit wel OK. Voeg een producten tabel toe en bekijk het nog eens opnieuw.

succes
Noella
 
Ik zie de noodzaak van een productentabel niet zo; je hebt er maar twee tenslotte. Dat niet alleen: per type klant is er maar één product. Lijkt mij redelijk overzichtelijk. Het enige dat dan nog aandacht behoeft is het feit dat advertenties in verschillende maten komen, dus per advertentie heb je andere prijzen nodig. Daar zou je dan wel een prijzentabel voor kunnen gebruiken wellicht. Maar dat doet niet zoveel af aan de originele vraag. Bovendien is het een redelijk hypothetische probleem, gezien de initiële vraagstelling:
Voor mijn studie ben bezig met het maken van een database voor een magazine.
En studievragen gaan uiteraard niet over databases die je ook in de praktijk gaat gebruiken. Nog afgezien van het feit dat we daar bij HelpMij geen complete oplossingen voor mogen geven, maar alleen maar in de goede richting duwen :).
 
De tabel producten zou er als volgt kunnen uitzien
prodID(autonumber)
prodCode (Short Text)
prodType(Short Text) met 2 mogelijkheden: AB(onnement) of AD(vertentie)
prodDescription(Short Text)
ProdPrice(Double)

Voorbeeld waarden:
prodID - prodCode - prodType - prodDescription - prodPrice
1 - ABC - AB - maand abonnement - 30
2 - DEF - AB - kwartaal abonnement - 85
5 - GHI - AD - kwart pagina - 1200
7 - JKL - AD - hele pagina - 4500

Dan heb je best nog een verkoopstabel en de verkoopslijnen. Daarin noteer je welke klant wat bestelt heeft. Een bedrijf kan bijvoorbeeld vragen om 3 maand een advertentie plaatsen van een hele pagina én een jaar abonnement op het tijdschrift nemen.

bv. in verkoopstabel
salesID (autonumber)
SalesDate
SalesCustomer (ID van je klant)
salesInvoiceCreated (Yes/no)

In je verkoopslijnen:
slID (autonumber)
slProduct (Long integer): ID uit je productentabel
slQuantity(long integer) aangezien je geen half abonnement kan verkopen heb je geen cijfers na de komma nodig

Ik zou ook je Contacten en bedrijven in dezelfde tabel steken, met een aanduiding van klanttype (P voor privé, B voor bedrijf)

Eenmaal je de verkoop tabellen hebt dan kan je daar eenvoudig facturen van maken in de tabellen Facturen en factuurlijnen.

succes
Noëlla
 
Laatst bewerkt:
Ik denk: kanon, mug :). Ik herhaal het nog een keer: het is op HelpMij niet toegestaan om rechtstreeks te helpen met studie vragen. Alleen ondersteunend. TS. moet zelf de oplossingen bedenken, niet wij.
 
Hoi Noëlla,

Als ik inderdaad de contacten en de bedrijven in een tabel stop dan krijg je dus records waar het veld bedrijfsnaam, als het om een privé-contact gaat, leeg. Of zou jij dit anders oplossen?

Bijvoorbeeld:
Tabel Contacten
Contact_id, voornaam, achternaam, bedrijfsnaam, branche_id, straat, huisnummer, postcode, etc

Alle velden die alleen voor een bedrijf ingevuld zouden kunnen worden blijven dan leeg?
 
Als je graag alleen met noella verder gaat, prima, maar doe dat dan via een PM :). Daarnaast was het míjn voorstel om de contacten en bedrijven in één tabel te stoppen :). (En ja, ik zou de bedrijfsnaam dan leeg laten). En een veld extra gebruiken om contactpersonen van een bedrijf aan een bedrijf te koppelen.
 
Ik zou het inderdaad leeghouden in de contacten tabel. Op het moment dat je de factuur aanmaakt kan je in het veld Contact dan de berekende waarde Voornaam & " " & Familienaam invullen. Maak niet de fout om in je facturentabel alleen te verwijzen naar het Contacten ID, want als de klant verhuist dan moet bij een herafdruk van de factuur nog altijd het oude adres afgedrukt worden zoals het op het moment van de factuur was en niet het nieuwe adres dat opgezocht kan worden via de contacten tabel.
Dus alle velden die je afdrukt ook opnemen in je factuur tabellen, inclusief prijzen en adres info.
Vergeet voor de bedrijven niet het BTW nummer op te nemen in je contacten en facturen tabel.
 
@noella: je bent de db voor TS aan het maken; daar moet je denk ik mee stoppen, want het is een studie opdracht. Het schiet niet op als één helper zich netjes aan de huisregels houdt, en de ander denkt: huisregels? die zijn toch niet voor mij bedoeld?
 
Octafish: ik heb les gegeven in de humaniora en geef nog altijd les aan bedrijven. En ik maak de opdracht niet voor hen, maar geef wel indicaties waar zich aan te houden. Binnen de regels zoals ze in België gelden. Ik heb ook les gegeven in Nederland, en daar waren de regels niet zo verschillend. Dus misschien alleen in jou enclave.
 
Noella: Ik heb óók les gegeven, zelfs in België. Maar dat maakt niet uit: in HelpMij zijn we niet les aan het geven. En TS zal ook ongetwijfeld een docent hebben, dus wij hoeven niet in dat (niet-bestaande) gat te springen. En hier houden we ons dus aan de regels die door HelpMij zijn opgesteld.
https://www.helpmij.nl/forum/announcement.php?f=5
 
Mr. O zullen we het modereren aan de moderators overlaten. Een misbruikmelding in deze was voldoende.
Tevens lijkt het mij verstandig, gezien jullie waarde voor dit "vak" (databases genaamd) dat jullie eens samen, NoellaG en jij, een bakkie koffie gaan doen ;)
De rekening mag naar mij worden gestuurd.

@sevnthe2nd Zie de huisregels. Helpmij gaat je niet helpen met huiswerk.
 
In deze onzekere tijden, dan maar een virtueel kopje
koffie.jpg

:-)
 
Ook goed. Misschien nog wel beter. Scheelt mij ook weer :D
 
Een misbruikmelding in deze was voldoende.
Ik vind ‘misbruik’ wel een héél sterke kwalificatie, Huib. Ik zie wel wat in sociale controle in dit soort situaties. Maar ik hou me uiteraard graag aan de heersende mores :). En voor koffie kun je mij altijd wakker maken, al heb ik in deze tijden meer behoefte aan iets sterkers :D.
 
Tja zo heet het nu eenmaal. Koffie noem je nu eenmaal ook geen thee ;) Of om in jouw smaak te spreken, whiskey noem je ook geen rum.
Goed weer over tot de orde van de dag. De floors are yours. Succes verder met het helpen van deze vraag.
 
Omdat Octafish zich heel erg zorgen maakt over het al dan niet dwarsbomen van mij studie zal ik nog even toelichten dat het niet om een studieopdracht gaat, maar om een database gaat die ik aan het maken ben voor een lokaal magazine, met als doel dat ik Access beter onder de knie krijg. Als ik Octafish was zou ik solliciteren op een moderator-functie bij het Helpmij forum, omdat hij zich meer druk maakt om de zogenoemde regels, in plaats van het antwoord op mijn probleem.

Toch heel erg bedankt voor alle feedback!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan