Ontstaan van dubbele waarde

Status
Niet open voor verdere reacties.
Alvast een kleine update: ik ben begonnen met het opschonen van de tabellen, d.w.z. dat ik alle velden uit tabellen verwijder die daar m.i. niet thuishoren. Dit dan gebaseerd op de Normalisatieregels. Dus de tabel t_Verzekering bevat straks alleen nog de verzekeringsgegevens van je materieel. In die tabel (die nu dus een verkeerd sleutelveld heeft (is nu aangepast naar ID_Verzekering) staan om te beginnen tientallen records met daarin wél materieel gegevens, maar géén verzekeringsgegevens. Die records zou ik dus willen verwijderen, want als het materiaal niet verzekerd is, heeft het ook geen plaats in de verzekeringstabel.

Daarnaast is die tabel nu niet helemaal te gebruiken omdat je geen tabel hebt met verzekeraars. Dat maakt het lastig om die gegevens goed op te slaan. Ik raad aan om daar een aparte tabel voor te maken die je koppelt met t_Verzekeringen. Daarnaast heeft een verzekering een Polisnummer als unieke waarde. Mis ik bij jou, ik zie alleen een factuurnummer. Als dat hetzelfde is: ik heb de naam van het veld al veranderd. Maar anders zou ik dus een nieuw veld erbij zetten voor de polisnummers.

Net zo belangrijk: een verzekering heeft een looptijd, meestal een jaar. Daarna krijg je een nieuwe polis, en eventueel een aangepast bedrag. Nou stel ik mij zo voor dat je de hele collectie hebt verzekerd, en bij één verzekeraar. Wat je nu hebt gedaan, is per stuk een verzekering afgesloten. Of in ieder geval: per stuk de verzekergegevens opgeslagen. Dat lijkt mij zowel voor jou als voor de verzekeraar een nodeloze berg werk. Dus leg even uit hoe je de verzekerkwestie in de praktijk hebt ingericht. Want er wordt met enige regelmaat verwezen naar de twee tabellen materieel en verzekering, maar volgens mij is de hele insteek dus verkeerd.

Dus prima als je een tabel Verzekering hebt met daarin de gegevens van de complete verzekerpolis, maar als je wilt weten of de verzekerde waarde nog klopt, en dat dan op basis van die nieuwe gegevens wilt aanpassen, dan heb je een andere structuur nodig. Wat ik zou doen: een koppeltabel maken tussen t_Verzekering en t_Materieel waarin je per verzekerd materieel vastlegt onder welke verzekering het stuk valt (koppeling met ID_Verzekering) en welk stuk het is (ID_Materieel). Dan kun je ofwel met die twee velden een nieuwe sleutel maken, ofwel een Autonummer veld gebruiken. Vervolgens leg je in de velden TaxatieDatum, VerzekerdeWaarde en TaxatieWaarde de nieuwe (gewenste) gegevens vast. Dat zou ik alleen doen op basis van mutaties. Het heeft, lijkt mij, geen enkele zin om elk jaar dezelfde gegevens opnieuw in te kloppen als die niet veranderen. De (totale) verzekerde waarde verandert er immers niet door, en de totale taxatiewaarde ook niet.
Met een Totalenquery bereken je dan de waarde van de totale collectie.

Andere werkwijze: je bent niet geïnteresseerd in welk materieel bij welke verzekeraar zit (kan ik mij ook goed voorstellen) maar wél in de waarde (en het bijbehorende verloop) van de stukken. In dat geval heb je genoeg aan de tabel die ik hierboven schetste, maar dan zonder het veld Verzekering_ID. Dan gaat het immers alleen om de prijsmutaties die je wilt vastleggen. Daarbij zijn dan het ID_Materieel belangrijk, de taxatiedatum en de nieuwe taxatiewaarde. Eventueel, als je met verschillende taxateurs werkt, een veld met daarin die taxateur. En een veld Opmerkingen natuurlijk, waarin je de taxatie kan omschrijven.

Daarnaast is de manier waarop je het materieel beschrijft niet geweldig; op zijn minst niet consequent. Neem nu deze twee omschrijvingen: "Kühlwagen (Bierwagen) mit Brhs" en "Kühlwagen mit Brhs (Bierwagen)". Kun jij de verschillen uitleggen? Ik niet... Ik vind dit ook meer categorieën dan omschrijvingen van het betreffende stuk. Dit: "Niederflur-Mittelwagen ´Rollende Landstraße mit LK" is ook niet hetzelfde als dit: "Niederflur-Mittelwagen ´Rollende Landstraße mit Lk". En dat zijn er maar twee die ik op één scherm tegenkom.

Databases zijn gebaat bij consequent ingevoerde gegevens, en afwijkende data die in beginsel hetzelfde beschrijft, moet je dus proberen te voorkomen. Bij voorkeur door die in keuzelijsten (op basis van tabellen in dit geval) te zetten.

Da's voorlopig wel voldoende :). Maar laat dus even weten hoe het nu zit met die verzekeringen.
 
Laatst bewerkt:
Dat was dan ook mijn vraag niet... Niet leuk om het vraagstuk te vertroebelen.
 
Die records zou ik dus willen verwijderen, want als het materiaal niet verzekerd is, heeft het ook geen plaats in de verzekeringstabel.
Hallo OctaFish, bedankt dat je mee denkt.
Nee niet doen want dit moet ik nog allemaal invullen.
De gegevens die ik invul bij verzekeren is alleen maar om een circa totale waarde te krijgen van mijn verzameling voor mijn inboedelverzekering, niets meer. Polis en verzekeraar doet er niet toe. Dat regel ik apart met hun. Nu is het zo dat ze zeggen; "o meneer het maakt ons niet uit, we nemen altijd het gemiddelde" Ja ja tot ik met de definitieve waarde kom van mijn hele treinbaan, dat loopt in de duizenden euro's en als het puntje bij het paaltje komt dan hebben ze het plots niet meer over gemiddelde. Dus vandaar dat ik dit in kaart wil brengen.

Het veld factuurnummer is als ik deze heb gekregen bij aankoop van het materieel.

Het financiële plaatje is om te weten hoeveel ik er voor betaald heb en daar zal ik niet alle gegevens meer van hebben maar wat ik wel weet vul ik dan in. Dat is zeker bij 2e hands aankopen. Als ik de datum heb van dit soort aankopen kijk ik in een oude catalogus wat toen de nieuw waarden was en de datum daarvan. Ik heb nu en heleboel om klad staan, ook dit is een uitzoekerij.
Ik ben begonnen met het opschonen van de tabellen, d.w.z. dat ik alle velden uit tabellen verwijder die daar m.i. niet thuishoren
Welke velden zijn dat en uit welke tabellen?

Wat je nu hebt gedaan, is per stuk een verzekering afgesloten.
Nee dat heb ik niet gedaan het gaat om het bedrag alles bij elkaar opgeteld.
Als na een jaar mijn inboedel verzekering verlengd moet worden dan pas ik een index cijfer toe over het totale bedrag. Een verzekeringmaatschappij doet dat ook.
Dat verzekeren houdt het simpel ajb.

Daarnaast is de manier waarop je het materieel beschrijft niet geweldig; op zijn minst niet consequent. Neem nu deze twee omschrijvingen: "Kühlwagen (Bierwagen) mit Brhs" en "Kühlwagen mit Brhs (Bierwagen)".
Dat zijn omschrijvingen die van een Duitse website kopieer en plak. Ook dat maakt voor mij geen verschil, als ik dit later tegenkom zal ik dit wel corrigeren. Kijk hier overheen ajb.

De inhoud van mijn tabellen wil ik zien en gebruiken. Wat ik graag wil zien dat deze tabellen in een leuke formulier goed gecombineerd worden en dat dit bruikbaar is. Later wil ook dan rapporten afdrukken.
 

Bijlagen

  • Voorbeeld formilier invoeren gegevens echte materieel.jpg
    Voorbeeld formilier invoeren gegevens echte materieel.jpg
    169,3 KB · Weergaven: 3
  • Voorbeeld formilier invoeren materieel.jpg
    Voorbeeld formilier invoeren materieel.jpg
    138,5 KB · Weergaven: 3
Hierbij enkel voorbeelden van formulieren. Ook hoe ik de mappen indeling heb gemaakt voor de afbeeldingen.
 

Bijlagen

  • Bestandsopbouw afbeeldingen onderverdeeld per fabrikant.jpg
    Bestandsopbouw afbeeldingen onderverdeeld per fabrikant.jpg
    39,3 KB · Weergaven: 7
  • Bestandsopbouw afbeeldingen.jpg
    Bestandsopbouw afbeeldingen.jpg
    69,4 KB · Weergaven: 6
  • Bestandsopbouw database.jpg
    Bestandsopbouw database.jpg
    26,5 KB · Weergaven: 7
  • Voorbeeld formulier invoeren gegevens echte materieel.jpg
    Voorbeeld formulier invoeren gegevens echte materieel.jpg
    169,3 KB · Weergaven: 7
  • Voorbeeld formulier invoeren materieel.jpg
    Voorbeeld formulier invoeren materieel.jpg
    138,5 KB · Weergaven: 5
Ik denk dat er nog wat denkverschillen zijn. De tabel t_Verzekering zou alleen de verzekeringgegevens moeten bevatten. Maar zo te lezen in #64 is dat helemaal niet boeiend, en doe je dat ook niet in de database. Jij wilt alleen de totale waarde kunnen opvragen op een willekeurig moment. Dat kan altijd met een query berekend worden op basis van de waarden in de tabel t_Materieel. En in die query kan je ook je index toepassen bij aanpassen van het verzekerde bedrag. Dat is allemaal niet zo moeilijk. Dus ik zou zeggen: vergeet het hele verzekeringsverhaal in de database :).

Sowieso moet je een tabel t_Aankoop hebben, die er nu niet is. Tenzij je daar de tabel [T_Verzekering/financieel] voor gebruikt(e). Maar daar staan nu weinig records in.
Ik raad je een constructie aan met de tabellen t_Aankoop en t_AankoopDetails, waarin je de losse onderdelen in beschrijft waaruit de aankoop bestaat. Zeker als je bij een bedrijf meerdere stukken koopt, dan heb je zo'n constructie nodig om de aankoop te specificeren. In die tabel t_AankoopDetails staat ook per regel (record) de prijs van het onderdeel. Daarmee heb je de aankoopprijs vastgelegd, en die heb je in eerste instantie ook nodig voor de verzekering. Immers: je wilt de totale waarde verzekeren.
Koop je bij een winkel, dan heb je geheid een factuur, en die gegevens sla je dus op in de tabel t_Aankoop. Zelf ben ik daar ook mee begonnen (uiteraard versloft dat veel te snel ;)) door o.a. de aankoopbonnen in te scannen en op te slaan in de database (niet de plaatjes natuurlijk). Koop je via een particulier, of op een beurs, dan is dat vaak wat lastiger en dan vul je de gegevens in voor zover je die hebt. Ik zou sowieso ook een veld toevoegen waarin je het type verkoper vastlegt.

Daarnaast heb je dus te maken met een waardevermindering/vermeerdering op tijd. Goederen worden meer waard in de loop van de tijd, of minder. Heb je een uniek stuk in je collectie, dan wordt dat na verloop van tijd meer waard, is het een massaproduct, dan is de kans groot dat de waarde langzaam afneemt. Omdat die waarde in de tijd lastig te bepalen/voorspellen is, wordt de waarde van een collectie met een schatting bepaald. Jij doet dat anders dan de verzekeringsmaatschappij. Maar daar heb je dus de catalogi voor die elk jaar een indicatie geven van de actuele waarde van een stuk.

Zo te zien gebruik je nu de oude catalogi om de aanschafwaarde van de huidige collectie aan te vullen voor aankopen waarvan je geen gegevens hebt, en dat lijkt mij een prima uitgangspunt. Die gegevens kun je dus kwijt in de tabel t_Aankoop. Zullen doorgaans particuliere aankopen zijn. Daarbij is nog wel een ontwerppuntje van belang: als je een aankoop doet via een winkel, dan is dat doorgaans meer dan 1 artikel (toch?). Dan staan er op de aankoopbon dus meerdere artikelen. Vandaar de constructie t_Aankoop --> t_AankoopDetails. Maar geldt dat ook voor aankopen via een particulier? Of koop je dan meestal maar één artikel? In het laatste geval is de constructie t_Aankoop --> t_AankoopDetails een beetje overkill.
Hoe dan ook: als je een nieuw artikel koopt, moet dat worden ingeboekt in de tabel t_Materieel. Daarvoor zijn verschillende werkwijzen te bedenken. Je kunt bijvoorbeeld, als je een nieuwe artikel invoert, in de tabel t_AankoopDetails eerst het artikel toevoegen aan t_Materieel via een popup, zodat het artikel dan gekozen kan worden. Of je vult eerst de complete aankoop in, dus de aankoopgegevens in t_Aankoop en de artikeldetails (artikelnummer, prijs, aantal etc) in t_AankoopDetails en je maakt daarna met een functie records aan in t_Materieel waarin je de gegevens uit t_AankoopDetails overzet naar t_Materieel. Sowieso dus het artikelnummer en de prijs. Is het aantal artikelen groter dan 1, dan heb je voor elk artikel een apart record nodig, er vanuit gaande dat je ook aparte serienummers hebt. We hebben te weinig inzicht in het hele proces, dus daar doe ik verder geen uitspraken over.

Wat wél belangrijk is: je aankopen hebben een aankoopdatum, een verkoper, een artikel en een prijs. Dus uiteindelijk zul je de gekochte artikelen moeten onderbrengen in je tabel t_Materieel, met daarbij een veld voor de actuele waarde. Dat is dus in beginsel de aankoopprijs. En die bedragen bij elkaar opgeteld vormen dan het startkapitaal, en het uitgangspunt voor het totale verzekerde bedrag. Je hebt die bedragen immers uitgegeven.
Daarnaast heb je dus, zoals ik al aangaf, de fluctuerende waarde, gebaseerd op taxaties en de catalogi. Die kan dus per artikel jaarlijks veranderen. Een treinstel wordt meer waard, of minder. En op basis daarvan wil je kunnen bepalen of de verzekerde waarde omhoog moet of omlaag. Vandaar dat ik een tabel t_Taxatie zou gebruiken om die gegevens vast te leggen.

Zodra je een nieuwe catalogus binnenkrijgt, en de waarden zijn veranderd, voeg je een record toe in die tabel met het betreffende MaterieelID, de taxatiedatum en de nieuwe waarde. Zelf zou ik dan in de tabel t_Materieel die waarde óók overnemen, al is dat niet helemaal volgens de normalisatieregels, maar het is een stuk makkelijker om een waarderapport te maken vanuit de tabel t_Materieel dan vanuit de tabel t_Taxatie. Bovendien is de waardestijging/daling ook afhankelijk van de conditie vermoed ik. En de conditie is een vast gegeven van een artikel. Ik zou me zelfs kunnen voorstellen dat je de waarde in de tabel t_Materieel laat berekenen met een apart berekend veld waarin je de cataloguswaarde met een percentage berekent op basis van de (nieuwe) conditie. Als de catologi verschillende prijswaarden hebben voor de verschillende condities, dan hoeft dat natuurlijk niet en vul je gelijk het juiste bedrag in.

De mappenstructuur die je hebt is denk ik wel bruikbaar voor het opslaan van de afbeeldingen. Moet ik nog even naar kijken.
 
Beste OctaFish.
Ik ben hier helemaal me eens, goede idee om te verwerken, top.
Het zijn dus geen verzekeringsgegevens maar aankoop c.q. waarde bepaling. Daar heb ik jou op het verkeerde been gezet. Sorry.

Tenzij je daar de tabel [T_Verzekering/financieel] voor gebruikt(e). Maar daar staan nu weinig records in.
Dat klopt dat moet ik nog verder invullen wat ik in het klad heb staan van al die jaren. Hoop werk dus.
Ik zou sowieso ook een veld toevoegen waarin je het type verkoper vastlegt.
Daar had ik de T_Verkoper voor bedoeld.

Maar daar heb je dus de catalogi voor die elk jaar een indicatie geven van de actuele waarde van een stuk.
De waarde van het materieel kan fluctueren. De Duitse website Spurweite N waar ik mee werk, houdt dit al bij. Zie bijlage. Daar haal ik mijn gegevens uit die op mijn item van toepassing uit. Als ik iets gebruikt koop van internet kijk ik hier in wat ik er voor over heeft.

Daarbij is nog wel een ontwerppuntje van belang: als je een aankoop doet via een winkel, dan is dat doorgaans meer dan 1 artikel (toch?).
Ja dat komt zeker voor.
Maar geldt dat ook voor aankopen via een particulier?
Dat komt zeker voor als ik op een beurs ben probeer je te onderhandelen als je meer dan 1 artikel koopt.
Of je vult eerst de complete aankoop in, dus de aankoopgegevens in t_Aankoop en de artikeldetails (artikelnummer, prijs, aantal etc) in t_AankoopDetails en je maakt daarna met een functie records aan in t_Materieel waarin je de gegevens uit t_AankoopDetails overzet naar t_Materieel. Sowieso dus het artikelnummer en de prijs. Is het aantal artikelen groter dan 1, dan heb je voor elk artikel een apart record nodig, er vanuit gaande dat je ook aparte serienummers hebt.
Prima idee uit eindelijk linksom of rechtsom je moet dat toch invoeren maar als je vanuit de aankoop de records voor materieel aanmaakt. Het echter nu wel zo dat ik mijn collectie aan de hand van materieel wat ik al bezit nu aan het invoeren ben. Ik had al in het verleden in Excel het e.e.a. ingevoerd en deze tabel geïmporteerd in Access. Deze gegevens ben ik aan het contoleren en heb daar een veld geïndexeerd voor gemaakt die ik kan afvinken. Dus het moet van twee kanten komen of alleen bij T_Materieel beginnen en daar dan later de aankoop gegevens bij voegen.
Ik zou me zelfs kunnen voorstellen dat je de waarde in de tabel t_Materieel laat berekenen met een apart berekend veld waarin je de cataloguswaarde met een percentage berekent op basis van de (nieuwe) conditie. Als de catalogi verschillende prijswaarden hebben voor de verschillende condities, dan hoeft dat natuurlijk niet en vul je gelijk het juiste bedrag in.
De conditie is bepalend hoe langer je er lang mee rijd wordt de conditie er niet beter op.

Over de decoders gesproken; niet alle lok's hebben een decoder. Ik rijd thuis digitaal en op de club www.lahntalbahn.nl analoog. De CV waarde zijn waardes die in de decoder zijn opgeslagen en die verschillen per lok.

De afbeeldingen die ik zou willen toevoegen kunnen 7 stuks zijn. Dus van alle kanten en 1 in perspectief.
Ik had in voorbeeld formulier F_Materieel mijn gedachte hoe dit zou kunnen.

OVP is Originele Verpakking.

LoB = Lengte over de buffers.

Als dit allemaal lukt krijg ik fantastische database.

TOP!

Groet Auke
 

Bijlagen

  • Spurweite N Prijsinfo.jpg
    Spurweite N Prijsinfo.jpg
    192 KB · Weergaven: 2
Als dit allemaal lukt krijg ik fantastische database.
Dat krijg je sowieso :). Ik zal je opmerkingen verwerken. Ik heb zelf voor mijn inventaris database een invoerformulier gemaakt met een fotopagina waarop ik foto’s kan toevoegen per item. Normaal gesproken doe je dat in een gekoppelde tabel (één-op-veel), maar op het formulier wil je makkelijk foto’s kunnen toevoegen, dus daarvoor heb ik een pagina met daarin vaste objecten. Bijvoorbeeld 9 stuks. Je klikt er één aan, kiest een foto uit een map en ziet dan die foto op het formulier. En zo vul je de hele pagina. Dat is an sich. Omdat jij dus maar 7 foto’s nodig hebt, voor jou heel nuttig, denk ik. Ik zal het voor je inbouwen.
 
Goedemorgen OctaFish.
Ik ben weer thuis en was nieuwsgierig hoe het met de Database gaat.
Groet Auke
 
Staat even in de wacht, want we zijn thuis aan het verbouwen en ik heb even geen werkkamer meer. Maar ik denk dat ik het volgende week wel weer kan oppakken.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan