FOK!forum / Digital Corner / SQL & Normaliseren
EggsTCdonderdag 15 mei 2003 @ 14:43
Ok, je hebt een database maar wil redundantie voorkomen. Hoe kan je dat doen??? Je hebt deze tabel :


Computermerk - Netwerkkaart - Videokaart - IPnummer - Type Geheugen - Processor


Van alle dingen kan bijna redundantie ontstaan..... hoe kan je dat nou normaliseren??

kareltje_de_grotedonderdag 15 mei 2003 @ 14:45
meerdere tabellen van maken volgens mij,

Ik heb dit ooit wel eens op school gehad, maar is helaas een beetje weggezakt.

domolanglekkerdonderdag 15 mei 2003 @ 14:46
tja zal effe me database boek erbij pakken moment..
markvlethdonderdag 15 mei 2003 @ 14:46
Elk onderdeel (behalve pc in een apparte tabel) met daarin standaard dingen als leverancier, en misschien nog specefieke omschrijving
en dan de onderdelen middels een koppel tabel koppelen aan een pc...

edit::

je kan het zelf nog bonter maken trouwens en netter
Elk CI (configuratie item) gewoon in een tabel met standaard informatie, plus een refrentie naar een specefieke entry, namelijk die CI afhankelijk (bijvoorbeeld een netwerk kaart heeft een transmissie snelheid)

[Dit bericht is gewijzigd door markvleth op 15-05-2003 14:52]

NDAsilenceddonderdag 15 mei 2003 @ 14:47
quote:
Op donderdag 15 mei 2003 14:43 schreef EggsTC het volgende:
Ok, je hebt een database maar wil redundantie voorkomen. Hoe kan je dat doen??? Je hebt deze tabel :


Computermerk - Netwerkkaart - Videokaart - IPnummer - Type Geheugen - Processor


Van alle dingen kan bijna redundantie ontstaan..... hoe kan je dat nou normaliseren??


lijkt me wel handig om eerst te weten wat precies de omstandigheden zijn bij deze database..
Zoek eerst maar uit wat de primary key is
kareltje_de_grotedonderdag 15 mei 2003 @ 14:50
quote:
Op donderdag 15 mei 2003 14:46 schreef markvleth het volgende:
Elk onderdeel (behalve pc in een apparte tabel) met daarin standaard dingen als leverancier, en misschien nog specefieke omschrijving
en dan de onderdelen middels een koppel tabel koppelen aan een pc...
en welke normaalvorm heb je dan?

* ik vond normaliseren op school altijd best leuk

domolanglekkerdonderdag 15 mei 2003 @ 14:50
is wel een flink werkje hoor. maar t komt er op neer dat je uit je elementaire gegevens de herhalende groepen moet uitzonderen en er aparte tabellen van moet maken. Maar weet wel dat normaliseren soms niet wenselijk is ivm performance.
domolanglekkerdonderdag 15 mei 2003 @ 14:51
quote:
Op donderdag 15 mei 2003 14:50 schreef kareltje_de_grote het volgende:

[..]

en welke normaalvorm heb je dan?

* ik vond normaliseren op school altijd best leuk


brr.. normaliseren... me ergste nachtmerrie .. scheen t nog wel te snappen.. had er een flinke voldoende voor.
PEt0rtjedonderdag 15 mei 2003 @ 14:53
Ligt er ook aan wat je van de zaken op wilt slaan. Bijvoorbeeld Netwerkkaart: wil je opslaan of die aanwezig is Ja / Nee, dan is dat een eigenschap van de klasse Computer ofzo, maar als je ook andere gegevens op wilt slaan over die netwerkkaart, type, aantal aansluitingen, weet ik wat nog meer, dan kun je er voor kiezen daar een aparte tabel van te maken en een foreign key op te nemen naar die netwerkkaart in de klasse Comp.

Volleges mij...

markvlethdonderdag 15 mei 2003 @ 14:53
quote:
Op donderdag 15 mei 2003 14:50 schreef kareltje_de_grote het volgende:

[..]

en welke normaalvorm heb je dan?

* ik vond normaliseren op school altijd best leuk


Dan ben je klaar
domolanglekkerdonderdag 15 mei 2003 @ 14:53
maar ehm.. heb je geen database boek bij de hand ofzo
kareltje_de_grotedonderdag 15 mei 2003 @ 14:54
quote:
Op donderdag 15 mei 2003 14:53 schreef markvleth het volgende:

[..]

Dan ben je klaar


de perfecte normaalvorm bestond nl niet volgens mijn docent.

domolanglekkerdonderdag 15 mei 2003 @ 14:54
quote:
Op donderdag 15 mei 2003 14:46 schreef markvleth het volgende:
edit::

je kan het zelf nog bonter maken trouwens en netter
Elk CI (configuratie item) gewoon in een tabel met standaard informatie, plus een refrentie naar een specefieke entry, namelijk die CI afhankelijk (bijvoorbeeld een netwerk kaart heeft een transmissie snelheid)


configuratie item als in de ITIL methode
Lucilledonderdag 15 mei 2003 @ 14:54
quote:
Op donderdag 15 mei 2003 14:43 schreef EggsTC het volgende:
Ok, je hebt een database maar wil redundantie voorkomen. Hoe kan je dat doen??? Je hebt deze tabel :


Computermerk - Netwerkkaart - Videokaart - IPnummer - Type Geheugen - Processor


Van alle dingen kan bijna redundantie ontstaan..... hoe kan je dat nou normaliseren??


Aangezien de meeste informatie die je kan invullen behoort tot een vrij kleine groep elementen (hoeveel computermerken zijn er, hoeveel videokaarten, ....) kan je die info bijvoorbeeld in een aparte tabel zetten. Tabel Computermerken bijvoorbeeld met velden MerkID (integer) en Merk (Varchar).
Zodoende hoef je in je hoofdtabel alleen maar een nummer te zetten. Zodoende sla je geen redundante informatie op.
domolanglekkerdonderdag 15 mei 2003 @ 14:55
quote:
Op donderdag 15 mei 2003 14:54 schreef kareltje_de_grote het volgende:

[..]

de perfecte normaalvorm bestond nl niet volgens mijn docent.


dat klopt.. en soms moet je ook gewoon denormaliseren
EggsTCdonderdag 15 mei 2003 @ 14:57
Maar als ik Videokaart in 1 tabel zet kan je in die tabel wel 15000 keer krijgen : GeForce 2 bla bla??
Dat is toch juist redundantie? Daarom vroeg ik het me af.
EggsTCdonderdag 15 mei 2003 @ 14:57
quote:
Op donderdag 15 mei 2003 14:47 schreef NDAsilenced het volgende:

[..]

lijkt me wel handig om eerst te weten wat precies de omstandigheden zijn bij deze database..
Zoek eerst maar uit wat de primary key is


Primarykey moet ik nog toewijzen...
sterker nog : de database bestaat (nog) niet eens.
markvlethdonderdag 15 mei 2003 @ 14:58
Overigens moet het doel bij het ontwerpen van een DB nooit zijn om geen redundantie te hebben. Het doel moet zijn om een representatie te hebben van de werkelijkheid, en alle mogelijke (geldige) situaties te kunnen opvangen...
domolanglekkerdonderdag 15 mei 2003 @ 15:00
quote:
Op donderdag 15 mei 2003 14:58 schreef markvleth het volgende:
Overigens moet het doel bij het ontwerpen van een DB nooit zijn om geen redundantie te hebben. Het doel moet zijn om een representatie te hebben van de werkelijkheid, en alle mogelijke (geldige) situaties te kunnen opvangen...
toch wel iig zo weinig mogelijk redundantie
dexter12windonderdag 15 mei 2003 @ 15:09
wat heeft een ip adres te maken met de configuratie van een compu ?
ranjadonderdag 15 mei 2003 @ 15:09
Tabel X:
Computermerk - Netwerkkaart - Videokaart - IPnummer - Type Geheugen - Processor

Niet genormaliseerd heb je bijvoorbeeld als vulling:

ABC - DEF - GHI - JKL - MNO - PQR
ABC - DEF - GHI - JKL - MNO - STU
ABC - DEF - GHI - JKL - VWX - PQR

Wel genormaliseerd maak je een extra tabel:

Tabel Processor:
Pr_id - Processor

Vulling:
Tabel Processor:
1 - PQR
2 - STU

Tabel X:

ABC - DEF - GHI - JKL - MNO - 1
ABC - DEF - GHI - JKL - MNO - 2
ABC - DEF - GHI - JKL - VWX - 1

En dit kun je dus voor elke kolom doen.

Wat je ook kunt doen, maar dat is een stap verder, is bepaalde combinaties maken... bv.

Tabel Processor_Geheugen:
ID - Type Geheugen - Processor
11 - MNO - PQR
12 - VWX - PQR
13 - MNO - STU

(Of :
11 - MNO - 1
12 - VWX - 1
13 - MNO - 2
plus tabel Processor zoals hierboven
etc
)

Tabel X:
ABC - DEF - GHI - JKL - 11
ABC - DEF - GHI - JKL - 13
ABC - DEF - GHI - JKL - 12

En dit kan ook in eindeloze variaties...

Overigens heeft dit niet zozeer met redundantie te maken, is puur normaliseren, en niet altijd nuttig (bv in het geval van platte data zoals je nu hebt, maar als dit een onderdeel van een voorraadsysteem is kan het wel handig zijn).

markvlethdonderdag 15 mei 2003 @ 15:10
quote:
Op donderdag 15 mei 2003 15:00 schreef domolanglekker het volgende:

[..]

toch wel iig zo weinig mogelijk redundantie


Dat spreekt voor zich natuurlijk, ook al ga je voor performance altijd zo min mogelijk redundantie
kareltje_de_grotedonderdag 15 mei 2003 @ 15:10
quote:
Op donderdag 15 mei 2003 15:09 schreef dexter12win het volgende:
wat heeft een ip adres te maken met de configuratie van een compu ?
indd laat de topicstarter eerst maar eens een fantsoenlijke database analyse maken. en ga dan de boel meer eens lekker over hoop halen door te normaliseren.
Darkysdustdonderdag 15 mei 2003 @ 15:14
quote:
Op donderdag 15 mei 2003 14:57 schreef EggsTC het volgende:
Maar als ik Videokaart in 1 tabel zet kan je in die tabel wel 15000 keer krijgen : GeForce 2 bla bla??
Dat is toch juist redundantie? Daarom vroeg ik het me af.
Hoeft toch juist niet? Je zet 1 keer die Geforce2 in die tabel met een eigen id, en vervolgens koppel je die id in een andere tabel aan de computer.
domolanglekkerdonderdag 15 mei 2003 @ 15:14
maar eh topicstarter is dit gewoon voor jezelf of moet je iets doen voor school wat je niet helemaal snapt
Darkysdustdonderdag 15 mei 2003 @ 15:16
quote:
Op donderdag 15 mei 2003 15:14 schreef Darkysdust het volgende:

[..]

Hoeft toch juist niet? Je zet 1 keer die Geforce2 in die tabel met een eigen id, en vervolgens koppel je die id in een andere tabel aan de computer.


Edit: zoals Ranja het dus doet...had geen zin om zo'n lange uitleg te maken
domolanglekkerdonderdag 15 mei 2003 @ 15:18
quote:
Op donderdag 15 mei 2003 15:14 schreef Darkysdust het volgende:

[..]

Hoeft toch juist niet? Je zet 1 keer die Geforce2 in die tabel met een eigen id, en vervolgens koppel je die id in een andere tabel aan de computer.


Dus voor iedere videokaart een aparte tabel krijg je aardig wat tabellen? (of per gebruikt merk videokaart een tabel met alle videokaarten van dat merk?)
EggsTCdonderdag 15 mei 2003 @ 15:24
quote:
Op donderdag 15 mei 2003 15:14 schreef Darkysdust het volgende:

[..]

Hoeft toch juist niet? Je zet 1 keer die Geforce2 in die tabel met een eigen id, en vervolgens koppel je die id in een andere tabel aan de computer.


Dan krijg je in die andere tabel toch iedere keer het zelfde "ID-nummer" wat ook weer redundantie is........
Lucilledonderdag 15 mei 2003 @ 15:27
quote:
Op donderdag 15 mei 2003 15:18 schreef domolanglekker het volgende:

[..]

Dus voor iedere videokaart een aparte tabel krijg je aardig wat tabellen? (of per gebruikt merk videokaart een tabel met alle videokaarten van dat merk?)


Lijkt me beter om 1 tabel te hebben voor alle videokaarten. Hoeveel videokaarten zal je hebben? Hooguit enige 10tallen, desnoods 100 stuks. Daar ga je niet weer subtabellen voor maken.
Lucilledonderdag 15 mei 2003 @ 15:29
quote:
Op donderdag 15 mei 2003 15:24 schreef EggsTC het volgende:

[..]

Dan krijg je in die andere tabel toch iedere keer het zelfde "ID-nummer" wat ook weer redundantie is........


Ja, maar die redundantie (dezelfde ID nummers in de hoofdtabel) blijf je houden, omdat de gegevens zelf redundant zijn (er zijn machines met dezelfde videokaart). Maar je kan beter redundant zijn in een integer, dan in een lange uitleg met characters. Een typefoutje is snel gemaakt, bovendien neemt het veel extra opslag in.
sopdonderdag 15 mei 2003 @ 15:36
Bijbeltje: http://home.student.utwente.nl/s.p.ekkebus/portfolio/files/Paper_DB_normalisation.pdf

(geen idee of het goed is, ga het nu ook lezen).

Overigens is het zelden wenselijk om verder dan de derde normaalvorm te normaliseren. Soms is het zelfs wenselijk om helemaal niet te normaliseren.
-edit- je kunt beter zeggen dat het soms wenselijk is om maar t/m de eerste normaalvorm te normaliseren.

[Dit bericht is gewijzigd door sop op 15-05-2003 15:39]

EggsTCdonderdag 15 mei 2003 @ 15:38
Kunnen er meerdere sleutels (die verwijzen naar vreemde sleutels) in een tabel?
Litphodonderdag 15 mei 2003 @ 15:40
quote:
Op donderdag 15 mei 2003 15:38 schreef EggsTC het volgende:
Kunnen er meerdere sleutels (die verwijzen naar vreemde sleutels) in een tabel?
Ja hoor.
Lucilledonderdag 15 mei 2003 @ 15:40
quote:
Op donderdag 15 mei 2003 15:38 schreef EggsTC het volgende:
Kunnen er meerdere sleutels (die verwijzen naar vreemde sleutels) in een tabel?
Met Primary Keys wel samengestelde keys (dus 1 Primary key die bestaat uit de combinatie van meerdere velden), met Foreign Keys (verwijzgingen naar andere tabellen) zoveel je maar wilt.
sopdonderdag 15 mei 2003 @ 15:41
quote:
Op donderdag 15 mei 2003 15:38 schreef EggsTC het volgende:
Kunnen er meerdere sleutels (die verwijzen naar vreemde sleutels) in een tabel?
Je bedoeld:
code:
[table: Computer]
ID
MonitorID => FK
ToetsenbordID =>FK
MuisID => FK
PrinterID =>FK

Waarbij de velden met een =>FK verwijzen naar een andere tabel.
M.a.w.: ja dat kan.
-edit-
Wellicht handig om even bij stil te staan:
Primary Key : Unieke waarden in een tabel. De waarde van dat veld mag maar 1 keer voorkomen in de tabel.
Foreign Key: De waarde van dit veld in de tabel mag wel meerdere malen in deze tabel voorkomen. De waarde van dit veld wijst echter naar een primairy key in een andere tabel.

Een primairy key definieer je in de structuur van de tabel. De foreign key wordt gedefinieerd in de relatie tussen de tabellen.

[Dit bericht is gewijzigd door sop op 15-05-2003 15:47]

EggsTCdonderdag 15 mei 2003 @ 15:43
Ik post zometeen ff mijn idee van normaliseren hier, brb
markvlethdonderdag 15 mei 2003 @ 15:44
quote:
Op donderdag 15 mei 2003 15:40 schreef Lucille het volgende:

[..]

Met Primary Keys wel samengestelde keys (dus 1 Primary key die bestaat uit de combinatie van meerdere velden), met Foreign Keys (verwijzgingen naar andere tabellen) zoveel je maar wilt.


Alleen wil je dit eigelijk zoveel mogelijk vermijden...
ReSieverdonderdag 15 mei 2003 @ 15:46
quote:
Op donderdag 15 mei 2003 14:50 schreef kareltje_de_grote het volgende:

[..]

en welke normaalvorm heb je dan?

* ik vond normaliseren op school altijd best leuk


Normaliseren is superhandig, het is en blijft redelijk overzichtelijk, je hebt weinig tot geen redundantie, maar je krijgt er verrekte rottige query's van

Maargoed, wij hebben dus ook de 1e t/m 4e normaalvorm behandeld, en dan ging op zich redelijk. Een makkelijk programma hierbij is SDW, die je redelijk helpt met het normaliseren, want goed normaliseren is nog helemaal geen eitje ben ik achter gekomen.

Ik denk dat in 80% van de gevallen ook geeneens genormaliseerd wordt. De meeste mensen denken van: wat heb ik nodig, wat wil ik opslaan, en hoppa, beng, knallen ze 1 a 2 tabellen eruit waar alles ingepropt is

Misschien dat je hier nog wat aan hebt!

Succes!

Lucilledonderdag 15 mei 2003 @ 15:47
quote:
Op donderdag 15 mei 2003 15:44 schreef markvleth het volgende:

[..]

Alleen wil je dit eigelijk zoveel mogelijk vermijden...


Je wilt Foreign Keys vermijden?
Litphodonderdag 15 mei 2003 @ 15:49
quote:
Op donderdag 15 mei 2003 15:47 schreef Lucille het volgende:

[..]

Je wilt Foreign Keys vermijden?


Samengestelde Primary Keys vermoedelijk.
sopdonderdag 15 mei 2003 @ 15:50
quote:
Op donderdag 15 mei 2003 15:46 schreef ReSiever het volgende:

[..]

Normaliseren is superhandig, het is en blijft redelijk overzichtelijk, je hebt weinig tot geen redundantie, maar je krijgt er verrekte rottige query's van


Ik denk dat als je niet normaliseert het programmeren/onderhouden van de inhoud van je database nog veel rottiger wordt.
En zo moeilijk zijn joins nou ook weer niet.
ReSieverdonderdag 15 mei 2003 @ 15:50
quote:
Op donderdag 15 mei 2003 15:47 schreef Lucille het volgende:

[..]

Je wilt Foreign Keys vermijden?


Ja, dat snap ik ook niet helemaal... dan is het principe van normaliseren dus al gevlogen....
ReSieverdonderdag 15 mei 2003 @ 15:52
quote:
Op donderdag 15 mei 2003 15:50 schreef sop het volgende:

[..]

Ik denk dat als je niet normaliseert het programmeren/onderhouden van de inhoud van je database nog veel rottiger wordt.
En zo moeilijk zijn joins nou ook weer niet.


Nee, joins zijn niet moeilijk, dat besef ik wel, maar je moet ermee gewerkt hebben. En mensen kiezen nou eenmaal voor de makkelijke manier.. Hup alles in 1 keer met een SELECT *, en daaruit lezen... maar daar is bij normaliseren geen sprake van
Lucilledonderdag 15 mei 2003 @ 15:52
quote:
Op donderdag 15 mei 2003 15:49 schreef Litpho het volgende:

[..]

Samengestelde Primary Keys vermoedelijk.


Ach, soms ontkom je er niet aan. Gewoonweg omdat er geen andere manier bestaat om op 1 veld een primary key te zetten.
sopdonderdag 15 mei 2003 @ 15:53
quote:
Op donderdag 15 mei 2003 15:52 schreef ReSiever het volgende:

[..]

Nee, joins zijn niet moeilijk, dat besef ik wel, maar je moet ermee gewerkt hebben. En mensen kiezen nou eenmaal voor de makkelijke manier.. Hup alles in 1 keer met een SELECT *, en daaruit lezen... maar daar is bij normaliseren geen sprake van


Als je zo graag een platte database wilt hebben, dan maak je toch gewoon een view aan. Kun je gewoon SELECT * doen.
markvlethdonderdag 15 mei 2003 @ 15:55
quote:
Op donderdag 15 mei 2003 15:52 schreef Lucille het volgende:

[..]

Ach, soms ontkom je er niet aan. Gewoonweg omdat er geen andere manier bestaat om op 1 veld een primary key te zetten.


ja sorry, ik doelde inderdaad op samengestelde sleutels. Ja de enige keer dat je er niet aan ontkomt is een veel op veel relatie en je dus gebruik maakt van een koppeltabel. Voor alle andere situaties gebruik je slechts een veld voor de pk...
ReSieverdonderdag 15 mei 2003 @ 15:56
quote:
Op donderdag 15 mei 2003 15:53 schreef sop het volgende:

[..]

Als je zo graag een platte database wilt hebben, dan maak je toch gewoon een view aan. Kun je gewoon SELECT * doen.


Ja, maar niet iedereen heeft daar zoveel verstand van he Ik vind normaliseren ok, maar je moet dan ook wat verstand van SQL hebben, dat bedoelde ik ermee te zeggen.
kareltje_de_grotedonderdag 15 mei 2003 @ 15:57
quote:
Op donderdag 15 mei 2003 15:53 schreef sop het volgende:

[..]

Als je zo graag een platte database wilt hebben, dan maak je toch gewoon een view aan. Kun je gewoon SELECT * doen.


En hoe maak je zo'n view aan?
code:
CREATE VIEW blah
SELECT hupeldepup, FROM huppeldepup WHERE blahblah = huppeldepup enz.

dus volgens mij schiet je daar nog niet veel mee op, ben je nog bezig met SQLlen.
Lucilledonderdag 15 mei 2003 @ 15:58
quote:
Op donderdag 15 mei 2003 15:56 schreef ReSiever het volgende:

[..]

Ja, maar niet iedereen heeft daar zoveel verstand van he Ik vind normaliseren ok, maar je moet dan ook wat verstand van SQL hebben, dat bedoelde ik ermee te zeggen.


Een database ontwerp maken zonder kennis van SQL lijkt me op zich al helemaal fout. Maar ja, zo heb ik genoeg foute database ontwerpen gezien in de afgelopen jaren.
ReSieverdonderdag 15 mei 2003 @ 16:00
quote:
Op donderdag 15 mei 2003 15:58 schreef Lucille het volgende:

[..]

Een database ontwerp maken zonder kennis van SQL lijkt me op zich al helemaal fout. Maar ja, zo heb ik genoeg foute database ontwerpen gezien in de afgelopen jaren.


Ja, maar die kennis van SQL komt meestal niet verder dan een SELECT * FROM tabel .. en dan zo af en toe nog een WHERE erbij
EggsTCdonderdag 15 mei 2003 @ 16:01
Zoiets???????


PCnummer(Primair)
Merk
Model
Serienummer

Serienummer
Videokaart
Geluidskaart
Processor
Geheugen
Harddisk
AantalUSB
Uitbreidingsmogelijkheden
Gebruiker
Software_ID
IPnummer

IPnummer
Type netwerkkaart
MAC Adres

Software_ID
Besturing
Extra Software


Uitbreidingsmogelijkheden
AGP
ISA
PCI

Gebruiker
Afdeling


Kan hij nog verder??

Lucilledonderdag 15 mei 2003 @ 16:05
Ik zou het echt helemaal anders opzetten, maar of je dat wilt is een tweede.
EggsTCdonderdag 15 mei 2003 @ 16:06
quote:
Op donderdag 15 mei 2003 16:05 schreef Lucille het volgende:
Ik zou het echt helemaal anders opzetten, maar of je dat wilt is een tweede.
laat maar is zien dan.
markvlethdonderdag 15 mei 2003 @ 16:06
Kan een pc hetzelfde serie nummer hebben??????
markvlethdonderdag 15 mei 2003 @ 16:07
quote:
Op donderdag 15 mei 2003 16:05 schreef Lucille het volgende:
Ik zou het echt helemaal anders opzetten, maar of je dat wilt is een tweede.
helemaal mee eens, dit is op ze zachts gezegd... ach laat ook maar...
sopdonderdag 15 mei 2003 @ 16:07
Ik zou een uniek nummer (zoals iemand al opperde) voor een configuratie maken.
En daar vervolgens de rand apparatuur weer aanhangen.
die randapparatuur kun je dan vervolgens weer normaliseren.
ReSieverdonderdag 15 mei 2003 @ 16:13
die videokaarten etc, de pconderdelen dus, die kun je alvast in een soort van aparte onderdelen tabel doen.

Tabel artikel:
veld 1 :id ->prim key
veld 2 :naam -> naam van onderdeel (Hercules Videokaart)
veld 3 :beschrijving -> beschrijving videokaart
veld 4 :specs -> specs videokaart
veld 5 :oid -> link naar tabel waar soorten onderdelen in staan (videokaart, geluidskaart)

tabel onderdeel:
veld 1: id-> primkey
veld 2 :onderdeelnaam (geluidskaart)
veld 3: misschien nog iets extra's

zoiets zou ik waarschijnlijk doen...

Lucilledonderdag 15 mei 2003 @ 16:44
Tabel PC_Info
PC_ID (integer, Primairy Key)
Type (integer, Foreign Key -> PC_Types)
Serienummer
Gebruiker_ID (integer, FK -> Gebruiker_Info)
IP_Nummer
MAC_Adres
AantalUSB
AGP (integer wat aantal aangeeft, eventueel gesplitst in totaal en in gebruik)
ISA (idem)
PCI (idem)

Tabel PC_Types
Type_ID (integer, PK)
Merk
Type_Uitvoering

Tabel Hardware_Info
PC_ID (integer, FK -> PC_Info)
Hardware_ID (FK -> Hardware_Types)

Tabel Hardware_Types
Hardware_ID (integer, PK)
Hardware_Type (integer wat aangeeft; Moederbord, Videokaart, Geluidskaart, Processor, Geheugen, Harddisk)
Merk
Uitvoering
Opmerkingen

Tabel Software_Info
PC_ID (integer, FK -> PC_Info)
Software_ID (FK -> Software_Types)
Besturing
Extra Software

Tabel Software_Types
Software_ID (integer, PK)
Naam
Versie

Tabel Gebruiker_Info
Gebruiker_ID (integer, PK)
Naam
Afdeling

Zoiets dus. Kost misschien iets meer moeite om het de eerste keer op te zetten, maar het onderhoud gaat sneller en je queries worden heel erg simpel. Je zoekt de PC_ID en aan de hand daarvan heb je een hele simepele query wat betreft de hardware en software die in de PC zit.

Lucilledonderdag 15 mei 2003 @ 16:45
quote:
Op donderdag 15 mei 2003 16:06 schreef markvleth het volgende:
Kan een pc hetzelfde serie nummer hebben??????
Lijkt me niet, anders is het geen serienummer.
markvlethdonderdag 15 mei 2003 @ 16:50
quote:
Op donderdag 15 mei 2003 16:45 schreef Lucille het volgende:

[..]

Lijkt me niet, anders is het geen serienummer.


Mij ook niet, maar volgens het model van EggsTC wel...