Citat:
Ursprungligen postat av BeanBeamer
Jag håller på att utveckla en sida där man väljer kanske 15/93 ämnen man vill bevaka (allt mellan 0-93 altså). Hur sparar jag bäst vilka ämnen varje användare valt i MySQL? Förslagsvis i en kolumn då lite jobbigt med 93 kolumner.
Den här frågan hör nog bättre hemma i
databasforumet.
Citat:
Ursprungligen postat av BeanBeamer
Har ett vagt minne av att man kan använda varje val som en siffra som dubblas för varje hopp, ex
Ämne 1: 1
Ämne 2: 2
Ämne 3: 4
etc
och sen lägga ihop de valda till ett tal och sedan utifrån det talet veta exakt vilka som valts, kan det vara något tro?
Du menar typ att bitmaska ut vilka ämnen användaren valt? Om bit 7 är satt så vill han bevaka ämne 84? Låter rätt jobbigt, i synnerhet då ämnena förmodligen kan komma att förändras eller utökas....
En bättre lösning är nog att lägga användare och ämnen i varsin tabell. Genom en tredje tabell knyter du sedan ihop dem, en typisk many-to-many-relation.
Tabell Users
UserID, Name, Password, etc
Tabell Subjects
SubjectID, Name, Date, Whatever
Tabell UserSubjects (eller nåt)
UserID, SubjectID
Fetstilta kolumnerna ovan är Primary Key och auto_increment. Bägge kolumnerna i UserSubjects är foreign keys som pekar på respektive primary.
...I UserSubjects lagrar du data enligt nedan:
UserID, SubjectID
1, 1
1, 2
1, 3
5, 12
5, 1
(Dvs användar-ID 1 bevakar ämne 1,2 och 3, medan användare 5 bevakar 1 och 12).
Därefter är det en relativt lätt match att bygga queries som
joinar ihop allt.