[datamodel] audio collectie
FK's staan er niet in, maar die komen wel.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
records
---------------------------------
id PK serial
naam varchar(100)
band_id int(5)
label_id int (5)
info varchar
rating int(2)
type_id int(3)
cover varchar
labels
---------------------------------
id PK serial
naam varchar(100)
info varchar
genres
---------------------------------
id PK serial
naam varchar(50)
genres_records
---------------------------------
genre_id PK int
record_id PK int
types
---------------------------------
id PK serial
naam varchar(50)
bands
---------------------------------
id PK serial
band_naam varchar(50)
locatie varchar(50)
vlag varchar
foto varchar
---------------------------------
id PK serial
naam varchar(100)
band_id int(5)
label_id int (5)
info varchar
rating int(2)
type_id int(3)
cover varchar
labels
---------------------------------
id PK serial
naam varchar(100)
info varchar
genres
---------------------------------
id PK serial
naam varchar(50)
genres_records
---------------------------------
genre_id PK int
record_id PK int
types
---------------------------------
id PK serial
naam varchar(50)
bands
---------------------------------
id PK serial
band_naam varchar(50)
locatie varchar(50)
vlag varchar
foto varchar
Ik zit een beetje te dubben met genre's hoe ik dit ga doen. Ik wil hetzelfde idee als last.fm gebruikt met tags. Dus een textvak waarbij tags met komma gescheiden worden en daarna als losse tag opgeslagen. Dat snap ik wle met een explode, maar nu wil ik dus als een genre nog niet bestaat dat deze aan de genre tabel wordt toegevoegd, maar ook dat dit genre meteen in de koppel tabel genres_records wordt opgeslagen (omdat in mijn geval een CD/DVD/LP etc meerdere genre's kan bevatten).
Hopelijk kunnen jullie mij hier mee verder helpen.
De database structuur ziet er goed uit iig.
Als je een nieuw record wilt gaan toevoegen en ga je eerst controleren of de genre(s) al bestaan.
Zo niet dan voeg je deze toe aan de database en haal het genre_ID ervan op. Die je weer gebruikt om het record te koppellen aan het genre.
Verder vraag ik me af of een liedje meerdere genres zal hebben? Als je zeker weet dat elke liedje (geen of) een genre heeft dan mag die koppel tabel weg en moet je een extra kolom bij records toevoegen. Is dat niet zo dat is het zo goed.
band A heeft als enige genre misschien pop, band B heeft misschien pop, rock en misschien wat blues. Op die manier wil ik het doen, eigenlijk hetzelfde idee als in mijn eerste post, een soort van tagging idee dus.
Dat kan toch zoals je het nu doet? Je kan aan de een een genre toevoegen, en aan de ander 20. Alleen even zorgen dat naam een unique contraint heeft in de tabel genres.
Robby williams heeft bijvoorbeeld een rap nummer, maar dat valt onder het genre rap en pop. RHCP valt ook onder zowel rap als rock.
Terwijl dit toch niet een echt genre is, het word wel vaak zo gezegd, maar het zijn nogsteeds 2 aparte genre's.
Dan klopt er iets niet.
En de optie dat je zelf labels kan aanmaken snap ik niet,,
Als je wilt, kan je best je eigen label beginnen, kost alleen maar wat aan apperatuur, en nog wat geld erbij voor de KVK, maar dat hoeft toch niet met een database? :P
Bijvoorbeeld 'vrijdag avond muziek' of 'voor mijn moeder', enzovoort
Dat het zeg maar mogelijk is zelf wat 'tags' of 'labels' op te geven aan een nummer.
Ja even voor de duidelijkheid, het gaat hier over een platenlabel, niet over een tag :) Een CD heeft maar 1 label, uiteraard kunnen dat er ook meer worden maar nu doe ik er gewoon 1tje, dat staat bij mijn CD's meestal achterop.
tags_records
tag_id FK
record_id FK
tags
id PK
value Unique
Ik denk dat ik dit later nog er in ga bouwen dan, nu wil ik eerst eens kijken hoe ik het beste en met zo min mogelijk PHP code het genre idee ga aanpakken. Als dit eenmaal goed is en waterdicht dan pas ik dit toe op de labels denk ik.
Je kan er dan wel niet blind op vertrouwen dat het gezochte genre echt niet in de lijst staat (gewoon simpel controleren met een select query) maar het is wel makkelijk om na te gaan.
Arend heeft wel gelijk, 1 label heeft in principe meerdere cd's / artiesten onder contract staan, dus dan kan je de labels ook beter apart trekken.