Nieuw in access, goed opweg? (Tabellen+relatie's)

Status
Niet open voor verdere reacties.

xray911

Gebruiker
Lid geworden
31 dec 2012
Berichten
13
Hallo allemaal,

Ik ben bezig met het maken van een database voor een kart baan. het is de bedoeling om diverse gegevens van de karts + het magazijn bij te gaan houden.
Het eerste idee was om dit te gaan doen in Excel. naar wat ori�nteren en lezen werdt al snel de conclusie door mij getrokken dat het beter in Access kon gebeuren.
met Access heb ik echter nog nooit gewerkt en ben dan ook maar begonnen met het lezen van het boek Access voor dummies (helaas in engels), Lezen van de handleiding geschreven door Octafish (Bedankt!) en het bestellen van het boek : basiscursus Access 2007. al dat lezen is natuurlijk hartstikke mooi maar het echte werk vindt natuurlijk plaats in Access zelf. voor dat ik mijn creatie laat zien in de hoop wat opbouwend kritiek te ontvangen zal ik eerst uitleggen wat het precieze idee achter de database is.

Het is de bedoeling om een database te ontwerpen welke door twee gebruikers groepen gebruikt gaat worden: De monteurs en de baan medewerkers. deze twee groepen zullen de database voor diverse situaties gaan gebruiken:

1. Er is een kart kapot. Een baan medewerker vult een formulier in om een "klacht" in te dienen (dit kunnen meerdere karts zijn met verschillende klachten). een monteur haalt de kart op en voert een reparatie uit(onderdelen bijhouden, huidige aantal uren kart noteren,uitgevoerde acties noteren en noteren of de olie vervangen is (of een ander slijt onderdeel))
2. Er wordt preventief onderhoud uitgevoerd (gebruikte onderdelen bijhouden, controle punten afvinken,huidige aantal uren kart noteren,uitgevoerde acties noteren en noteren of de olie vervangen is (of een ander slijt onderdeel))
3. Er wordt een automatisch digitaal magazijn bijgehouden welke aangeeft als onderdelen onder bepaalt aantal komt waarbij nieuwe moeten worden besteld
4. Leverancierslijst
5. De baan medewerkers vullen een lijst in met aantal uren dat de karts hebben gelopen.
6. Diverse rapporten (aantal uren tot vervangen slijt onderdeel ed.)

omdat ik nog vrij nieuw ben in Access heb ik besloten om te beginnen met alleen situatie 1, mocht ik straks opnieuw moeten beginnen vindt ik dit niet erg.
hieronder is een overzicht terug te vinden van mijn tabellen + relatie's. ik zou hier graag wat opbouwende kritiek op ontvangen.

Met vriendelijke groeten,

Robin Hengeveld
 

Bijlagen

  • Kartbaan.rar
    23,4 KB · Weergaven: 24
  • Kartbaan.jpg
    Kartbaan.jpg
    91,9 KB · Weergaven: 71
Laten we maar met een complimentje beginnen: je begin ziet er goed uit :thumb: Mag natuurlijk ook wel, als je zo'n cursus hebt gelezen ;)
Ik heb bij puntje 1 wel een opmerking: is er een reden om klachten die in beginsel weinig met elkaar te maken hebben, behalve de medewerker die ze meldt, in één tabel ([Klachten]) onder te brengen? Ik zou zeggen: elke kart is een zelfstandige entiteit (object), en reparatie/onderhoud van een willekeurige kart op een willekeurig moment heeft bar weinig te maken met een willekeurige andere kart op hetzelfde willekeurig moment. Een kart gaat kapot (accidents happen) en hij moet gerepareerd worden. Wat heeft dat te maken met een andere kart waarvan toevallig de olie ververst moet worden? Je kunt het nog dieper bekijken: heeft het oplossen van de ene klacht (kart kapot) ook maar één jota te maken met de oplossing voor de andere (olie verversen)? Ik denk van niet. Ik zou die tabel klachten er dus uitgooien, want die vertroebelt je systeem alleen maar.

Ik kan me wel een andere situatie voorstellen: de kart die kapot is, moet worden gerepareerd. Stel nu dat die kart door onkundig gebruik dermate kapot is dat hij:
a) een nieuw onderstel moet krijgen
b) een nieuwe motor
c) opnieuw worden gespoten
d) nieuwe ruitenwissers

Al deze activiteiten vallen in beginsel onder hetzelfde reparatierecord, maar moeten toch op verschillende momenten worden uitgevoerd. Je reparatie bevat in dit geval dus deeltaken, die misschien ook door verschillende monteurs worden uitgevoerd.
Verder mis ik nog velden waarop de reparatie wordt afgemeld. Dat zou ik zeker toevoegen, want je wilt waarschijnlijk uiteindelijk ook kunnen rapporteren op de effectiviteit van de verschillende onderdelen: hoe lang duurt een gemiddelde reparatie, hoe lang duurt het vervangen van een motor, het vernieuwen van ruitenwissers etc. Op basis van die gegevens kun je dan veel beter monteurs inplannen bijvoorbeeld.
En wellicht dat je in de tabel [Onderdelen reperatie] een nieuwe sleutel kunt maken met een Autonummerveld. De huidige sleutel zou mij iets te stringent zijn.
 
Beste Octafisch,

als eerst bedankt voor de reactie!

Mijn achterliggende gedachte achter het apart houden van de klachten was als volgt: als een baan medewerker een klacht invoert komt deze klacht niet in de tabel waar de gegeven van de reparatie's komen. zo houdt ik deze gegevens gespreid. is dit geen goede gedachte gang geweest?

nee de reparatie van de ene kart heeft niks te maken met de reparatie van de andere kart. omdat ik zelf een van de monteurs ben heb ik gelukkig een goed beeld van de situatie. een reparatie wordt altijd door maar één monteur uitgevoerd en afgemaakt. het kan zijn dat een tweede monteur assisteert maar dat komt niet vaak voor. het is dan misschien wel een idee om een tweede veld voor assisteerde monteur toe te voegen? hoe doe ik dit met de relatie's? een rapport over hoe lang iets duurt is niet van belang. door overziende omstandigheden is hier namelijk niks over te zeggen en monteurs worden niet ingepland maar zijn vaste uren aanwezig.

U bedoelt de klachten tabel onderbrengen in de reparatie tabel?
wat bedoelt u met "De huidige sleutel zou mij iets te stringent zijn" ?

heb het bestand bijgewerkt en weer bijgevoegd.

Met vriendelijke groeten,

Robin
 

Bijlagen

  • Kartbaan 1.1.rar
    24,5 KB · Weergaven: 22
Mijn achterliggende gedachte achter het apart houden van de klachten was als volgt: als een baan medewerker een klacht invoert komt deze klacht niet in de tabel waar de gegeven van de reparatie's komen. zo houdt ik deze gegevens gespreid. is dit geen goede gedachte gang geweest?
Nee, niet in mijn ogen althans. Waarom zou je die gegevens gespreid houden? Een klacht is niets meer dan een verzoek tot reparatie/onderhoud. En een melding kan uit deelmeldingen bestaan, zoals ik al heb beschreven. Maar een klacht gaat niet over verschillende objecten die verder niks met elkaar te maken hebben. Je kunt natuurlijk de tabel [Klachten] omdopen naar [Meldingen], etc. dan heb je de structuur al enigszins op orde (heb je nieuwe db nog niet kunnen bekijken). Ik zou het systeem niet zo maken zoals je nu voor ogen hebt, omdat je dan geen enkele groei mogelijkheid meer hebt. Dus ook al gebruik je per klacht maar één monteur, je moet het wel zo maken dat je met meerdere monteurs aan dezelfde klacht kunt werken. En dat doe je met een extra tabel. Niet met een extra veld, want dan zit je al gelijk weer vast. Een db moet je als het kan zo flexibel mogelijk opzetten, zodat je in de toekomst niet de complete structuur overhoop moet gooien omdat je in het begin dacht: "dat gaat hier nooit zo". Want ooit wordt de procedure wèl veranderd, en dan zit je met de gebakken peren! Die fout moet je dus proberen te vermijden :)
 
Beste Octafish,

ik ben bezig met de 2de monteur toe te voegen maar kom er niet uit hoe ik dit het best kan doen.
in principe heb een tabel nodig welke identiek is aan de tabel [Monteurs]. is hier een mogelijkheid voor?
Heb voor het gemak plaatje van mijn relaties toegevoegd

Robin
Kartbaan 1.1.png
 
En waarom zou je daar een aparte tabel voor gebruiken? Het zijn toch dezelfde monteurs?
 
dat begreep ik uit u stuk tekst "Dus ook al gebruik je per klacht maar één monteur, je moet het wel zo maken dat je met meerdere monteurs aan dezelfde klacht kunt werken. En dat doe je met een extra tabel. Niet met een extra veld, want dan zit je al gelijk weer vast"

Met vriendelijke groeten,

Robin
 
Met die extra tabel bedoel ik een tabel met Deelreparaties, niet extra monteurs. Maar als je slechts één, en nooit meer dan één extra monteur wilt kunnen toevoegen, dan is een oplossing met een extra veldje ook acceptabel. Niet optimaa, maar werkbaar.
 
Beste Octafish,

ik heb al u suggesties in de database verwerkt. wat vindt u er van?
Deel reparaties heb ik niet toegepast. van deel reparaties is namelijk haast geen sprake. het is niet vaak hetzelfde.
Met vriendelijke groeten,

Robin
Kartbaan 1.2.png
 
Laatst bewerkt:
Ik zou zelf twee dingen (eigenlijk 3, maar dat blijkt zo wel) anders doen.
1. De tabellen Monteurs en Medewerkers zou ik samenvoegen tot één tabel met een extra veld Functie. De twee tabellen bevatten dezelfde gegevens, dus is het gewoon één tabel. Die koppel je dan maar één keer aan Reparaties; voor het formulier maak je toch aparte keuzelijsten, die je dan filtert op functie. Bovendien kun je met één tabel voorkomen dat je bij assistent monteur dezelfde monteur kiest als de hoofd monteur, wat natuurlijk niet zou mogen.
2. Tenzij je voor elk onderdeel altijd exact één leverancier hebt, zou ik een extra tabel maken: Onderdeel_Leverancier. Op die manier kun je voor een onderdeel bij meerdere leveranciers shoppen.
En 'Reperaties' is een niet-bestaand woord. Moet natuurlijk reparaties zijn. Het zou mij genoeg irriteren om het te veranderen :)
 
heb de drie dingen aangepast :)
nog bedankt voor het melden van de typ fout. heb zelf dyslexie dus ik zie dat soort dingen niet.
als het goed is moet dit hem ongeveer zijn.
 

Bijlagen

  • Kartbaan 1.3.png
    Kartbaan 1.3.png
    48,3 KB · Weergaven: 38
Ik begrijp dat je moeite hebt met taal, en dan doe je het wat mij betreft prima! Maak je een database voor anderen, dan is het extra lastig om hem foutloos op te leveren. Is het alleen voor jezelf, dan maakt het uiteraard niet uit hoe een tabel heet. Ik zie dat je de velden [Monteur] en [Assistent monteur] weer hebt verwijderd, maar die heb je volgens mij nog wel nodig. Want anders heb je geen referentie meer naar de monteur die een reparatie uitvoert. Of gebruik je daar nu het veld Medewerker voor? Kan natuurlijk ook.
 
Ja ik had die velden inderdaad vervangen voor het veld medewerker. ik weet nog niet precies hoe ik dit straks ga aanpakken in de formulieren maar het is de bedoeling dat dit gewoon een keuze veld wordt waar bij de monteurs alleen de actieve monteurs geselecteerd kunnen worden en bij de baan medewerkers alleen de baan medewerkers. gelukkig gaat het goed met de taal. typ de woorden vaak in Google in om ze te controleren :p.

Met vriendelijke groeten,

Robin
 
Op je formulieren kun je inderdaad simpel de keuzelijsten maken die zijn gebaseerd op de tabel [Medewerkers]. De ene lijst filter je dan op functie "Medewerker", de tweede (en assistent eventueel) op "Monteur". Zo simpel kan het dan zijn :)
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan