Ik heb geen programmeertechnische, maar meer een databasetechnische vraag. Ik ben voor me stageopdracht bezig om een webapplicatie met database te ontwerpen. Het gaat om het beheren van apparatuur. De gegevens voor deze apparatuur stond voorheen in een Oracle 8i database. De gegevens daar bestonden bijv. uit naam, barcode, serienr. etc. Deze gegevens zijn inmiddels al overgezet naar een MySQL database.
Vanuit de gebruikerskant is de vraag om de technische specificaties van de apparatuur aan de database toe te voegen, dit om via een zoekmogelijkheid de juiste apparatuur te kunnen zoeken. Deze gegevens zijn niet aanwezig in de Oracle database.
De bedoeling is dat alle technische specificaties en extra informatie per apparaat via de webapplicatie ingevuld gaan worden en zo opgeslagen wordt. Ik stuit hierbij op een (voor mij iig) complex databaseprobleem.
In de tabel equipment staan alle standaard gegevens welke overgezet zijn vanuit de oracledatabase. Elk apparaat wordt gekenmerkt door een unieke barcode en een typenummer waaraan zijn categorie en type hangen. (vb. Apparaat met barcode 12345 en typenummer 1 is een machine van het type boor aka. boormachine)
In de tabel equipmentCategory staan een typeID met category en typeaanduiding
De tabel EquipmentSpecs staat een overzicht van de relaties met de technische specificaties.
Vanuit het normaliseren ben ik terecht gekomen bij de relatietabel. Alle mogelijke waarden van technische specificaties staan dus in de specificatiestabellen met hun ID. In de EquipmentSpecs tabel komen deze samen met alleen het type of direct aan het apparaat zelf met de barcode.
Daaronderliggende tabellen staan de specificaties in.
Voor elk typenummer (lees soort apparaat) moeten de mogelijke technische specificaties bekend zijn. (Bijv. bereik van een voltmeter; 0-100 volt, 100-200 volt, 200-500volt.
Uit deze tabellen is af te leiden dat apparaten met het typenummer 1 de mogelijke waarden 0-100 en 100-200 kunnen hebben. Apparaat met barcode 12345 is dus bijv. een voltmeter met bereik 0-100.
Het probleem is nu dat als nieuwe apparaat gevonden is in de MySQL database deze getoond wordt in de webapplicatie. Als eerste moet er een category en type gekozen worden welke tot het apparaat behoren, dit stuk is al klaar. Zodra deze 2 gekozen zijn moet er een overzicht gegenereerd worden met de 'mogelijke' technische specificaties van de gekozen category/type. De gebruiker kiest de waarden voor het specifieke apparaat en slaat deze op in de database.
Mijn vraag is nu, heeft iemand een soortgelijke ervaring met het opzetten van zulke relaties? Of heeft iemand adviezen/suggesties waar ik op moet letten? Het klinkt wel redelijk makkelijk zo, maar de mogelijkheid die ik nu beschreven heb is aardig moeilijk te realiseren in de webapplicatie, omdat er straks ongeveer 300 verschillende typenummers zijn met al hun mogelijke technische specificaties.
Screenshot deel ERD:
Vanuit de gebruikerskant is de vraag om de technische specificaties van de apparatuur aan de database toe te voegen, dit om via een zoekmogelijkheid de juiste apparatuur te kunnen zoeken. Deze gegevens zijn niet aanwezig in de Oracle database.
De bedoeling is dat alle technische specificaties en extra informatie per apparaat via de webapplicatie ingevuld gaan worden en zo opgeslagen wordt. Ik stuit hierbij op een (voor mij iig) complex databaseprobleem.
code:
1
2
3
4
5
6
7
8
9
10
11
| Database:
Equipment ---> EquipmentCategory
|
| ---> Equipmentspecs
|
|---> FrequencyOptions
|
|---> TimeOptions
|
|---> MathOptions |
In de tabel equipment staan alle standaard gegevens welke overgezet zijn vanuit de oracledatabase. Elk apparaat wordt gekenmerkt door een unieke barcode en een typenummer waaraan zijn categorie en type hangen. (vb. Apparaat met barcode 12345 en typenummer 1 is een machine van het type boor aka. boormachine)
In de tabel equipmentCategory staan een typeID met category en typeaanduiding
De tabel EquipmentSpecs staat een overzicht van de relaties met de technische specificaties.
Vanuit het normaliseren ben ik terecht gekomen bij de relatietabel. Alle mogelijke waarden van technische specificaties staan dus in de specificatiestabellen met hun ID. In de EquipmentSpecs tabel komen deze samen met alleen het type of direct aan het apparaat zelf met de barcode.
code:
1
2
3
4
5
6
7
8
9
10
| EquipmentSpecs: -------------------------------------------------------------------- | Typenr. | Barcode | FrequencyOptions | TimeOptions | MathOptions | -------------------------------------------------------------------- | 1 | | 1 | 2 | 3 | | 1 | | 2 | | 4 | | 1 | 12345 | 1 | 2 | 4 | | 2 | | 3 | 1 | | -------------------------------------------------------------------- |
Daaronderliggende tabellen staan de specificaties in.
Voor elk typenummer (lees soort apparaat) moeten de mogelijke technische specificaties bekend zijn. (Bijv. bereik van een voltmeter; 0-100 volt, 100-200 volt, 200-500volt.
code:
1
2
3
4
5
6
7
8
| ------------------------------------- | ID | FreqRangeLow | FreqRangeHigh | ------------------------------------- | 1 | 0 | 100 | | 2 | 100 | 200 | | 3 | 200 | 500 | | 4 | 500 | 1000 | ------------------------------------- |
Uit deze tabellen is af te leiden dat apparaten met het typenummer 1 de mogelijke waarden 0-100 en 100-200 kunnen hebben. Apparaat met barcode 12345 is dus bijv. een voltmeter met bereik 0-100.
Het probleem is nu dat als nieuwe apparaat gevonden is in de MySQL database deze getoond wordt in de webapplicatie. Als eerste moet er een category en type gekozen worden welke tot het apparaat behoren, dit stuk is al klaar. Zodra deze 2 gekozen zijn moet er een overzicht gegenereerd worden met de 'mogelijke' technische specificaties van de gekozen category/type. De gebruiker kiest de waarden voor het specifieke apparaat en slaat deze op in de database.
Mijn vraag is nu, heeft iemand een soortgelijke ervaring met het opzetten van zulke relaties? Of heeft iemand adviezen/suggesties waar ik op moet letten? Het klinkt wel redelijk makkelijk zo, maar de mogelijkheid die ik nu beschreven heb is aardig moeilijk te realiseren in de webapplicatie, omdat er straks ongeveer 300 verschillende typenummers zijn met al hun mogelijke technische specificaties.
Screenshot deel ERD: