Results 1 to 12 of 12

Thread: normaliseren van database goed genoeg of kan het nog een stap verder

  1. #1

    normaliseren van database goed genoeg of kan het nog een stap verder

    Ik heb de volgende gegevens in een database staan:

    • game
    • description
    • disc
    • region
    • icon
    • cover
    • ingame
    • manual

    Dit heb ik genormaliseerd naar de volgende tabellen toe:
    1. games

    • game_id (auto_id)
    • game (tekst 255)
    • description (memo)
    • disc_id (integer)
    • region_id (integer)
    • icon (blob)
    • cover (blob)
    • ingame (blob)
    • manual_id (integer)

    2. region

    • region_id (auto_id)
    • region (tekst 255)

    3. disc

    • disc_id (auto_id)
    • disc (tekst 255)

    4. manual

    1. manual_id (auto_id)
    2. manual (blob)

    Zie jij in deze tabel opzet nog een mogelijkheid om nog verder te normaliseren of denken jullie dat dit zo goed is.
    Check out ackspace.nl for a dutch hackerspace

  2. #2
    Dat is onmogelijk te beantwoorden zonder te weten hoeveel er gedeeld wordt tussen de verschillende games. Kennelijk hebben meerdere games dezelfde manual. Hebben ze dan ook niet hetzelfde icon en cover, etc?
    We adore chaos because we like to restore order - M.C. Escher

  3. #3
    nee. de icon, cover en ingame zijn anders. ook de description is anders (andere characters waar je dan namelijk mee kunt spelen). inderdaad hebben ze wel dezelfde handleiding (omdat de werking van de game ongewijzigd is. alleen het character is dan anders. (neem als voorbeeld maar eens de nintendogs games voor de Nintendo DS. die hebben allen een ander icon, een net iets andere description, een andere cover en een andere in-game, terwijl de manual exact hetzelfde is.)
    Check out ackspace.nl for a dutch hackerspace

  4. #4
    En een game kan maar op één CD staan en in één region uitkomen (enz..)?
    Marcel

  5. #5
    dat klopt ja, omdat de lijst die hier in komt te zitten een lijst is van alle Nintendo DS games, zonder dubbele. Dit houdt dus ook in dat hij dus maar uit 1 region komt (USA, Europe of Japan). Bovendien krijgt dan de Europe versie de voorkeur boven de USA versie en de USA game voorkeur boven de Japan versie. zo hou je nog maar 1 versie over. verder is het inderdaad wel de bedoeling dat hij inderdaad niet op meerdere DVD's kan staan

    [edit]Dit omdat deze database gebruikt gaat worden in een install-app om de games te kunnen installeren op een NDS. (de details hiervan laat ik om legale redenen dan ook weg)[/edit]
    Check out ackspace.nl for a dutch hackerspace

  6. #6
    Senior Member
    Join Date
    Aug 2008
    Location
    Randstad
    Posts
    184
    Mijn vuistregel : Als je straks je tabellen vult met data en je ziet dubbele dingen staan, dan had je nog verder kunnen normaliseren

  7. #7
    Maar over het algemeen doe je je databaseontwerp toch voordat je begint met programmeren, niet daarna
    Marcel

  8. #8
    Senior Member
    Join Date
    Aug 2008
    Location
    Randstad
    Posts
    184
    Quote Originally Posted by Marcel View Post
    Maar over het algemeen doe je je databaseontwerp toch voordat je begint met programmeren, niet daarna
    Vandaar mijn sadistische smilie

  9. #9
    SillyMember
    Join Date
    May 2003
    Location
    Gent
    Posts
    7,725
    Zelf doe ik nooit databaseontwerp voor ik begin te programmeren. Meestal heb ik zelfs een werkende applicatie voordat ik zelfs nog maar over persistentie in een databank begin na te denken.
    Last edited by Dirk Andries; 15-Aug-08 at 12:04. Reason: Diepvaut
    All methodologies are based on fear. -- Kent Beck.

  10. #10
    Hangt ervanaf wat de insteek van je applicatie is. In veel gevallen, zo ook met zo'n verzameling denk ik, heb je vooral een database met gegevens en is je applicatie niet meer dan een interface om die gegevens te bekijken en te bewerken. In dat geval kun je wel stellen dat de structuur van de data belangrijk is, en de applicatie daar in feite ondergeschikt aan is.
    In andere gevallen heb je vooral een specifieke functionaliteit en kun je wat (doorgaans tamelijk platte) gegevens voor je applicatie opslaan in een formaat naar keuze, wat eventueel ook een database kan zijn.
    1+1=b

  11. #11
    Senior Member
    Join Date
    Aug 2008
    Location
    Randstad
    Posts
    184
    @Dirk Andries: Wat GolezTrol zegt. Als je een applicatie moet bouwen die uitgebreide/complexe data moet behandelen, kan je echt beter (al is het maar globaal) nadenken over de in- en opdeling van je tabellen, anders krijg je in een later stadium zeer waarschijnlijk problemen.

    Maakt ook uit of je het 'in opdracht' doet of voor jezelf, klanten/opdrachtgevers hebben de neiging om later met opmerkingen als 'oh kan je dit ook nog toevoegen?' te komen ;-)

  12. #12
    Als het gaat om het toevoegen van een veldje dan is dat natuurlijk sowieso geen probleem.
    Als het gaat om complexe dingen, dan kun je er ook wel een beetje rekening mee houden, zeker als je het gevoel hebt dat de klant er nog niet goed over heeft nagedacht. Bijvoorbeeld een adresboek. Een persoon kan meerdere adressen hebben, dus kan het zinnig zijn om daar een master-detail van te maken, ook als er in eerste instantie wordt gevraagd om 1 adres. Je kunt er wel van uitgaan dat die wens nog verandert voordat je applicatie goed en wel in productie is.
    Eventueel kun je je je applicatie zo maken dat hij wel één adres per persoon laat zien en kan bewerken. Je applicatie lijkt dan gewoon een 1:1 relatie te hanteren tussen persoon en adres, maar als dat later moet veranderen, dan kun je gewoon een paar edits vervangen door een grid met een extra query, zonder dat je je datamodel aan hoeft te passen.

    Maargoed daarin moet je ook niet te ver doorslaan, anders komt je applicatie nooit af en maak je het jezelf nodeloos moeilijk. Een datamodel is namelijk ook best aan te passen. En in bovenstaand voorbeeld zal het ook niet moeilijk te zijn om op een later moment een tabel voor adres te maken en de data te converteren om de adressen van reeds bestaande personen los te trekken en te verplaatsen naar je nieuwe tabel.
    1+1=b

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •