Flere ID i samme rad MySQL

Databasebehandling, feilsøking, generell bruk av funksjoner o.l.

Flere ID i samme rad MySQL

Innlegg danielbendiksen » 21.11.2016 13:59

Heisann!

Har da en database med ressurser som brukeren har.

Denne består av:
id
userID
gold
gold_max
wood
woodsman
food
foods max

Er det mulighet å lagre for eks. kun i gold raden med både gold og gold_max med et komma imellom?

Eller om jeg har et bygg som krever flere ID som wood ol.?

Tusen takk for tips/hjelp!
"Some languages are designed to solve a problem. Others are designed to prove a point."
dBendiksen.no
Brukerens avatar
danielbendiksen
Medlem
 
Innlegg: 100
Registrert: 17.09.2008 10:48

Re: Flere ID i samme rad MySQL

Innlegg Nukleuz » 23.11.2016 14:12

Her burde du strengt talt dele dette opp i flere tabeller, og referere til relasjonene mellom bruker tabellen, gull tabellen, ved tabellen osv.

Men for å svare på spørsmålet ditt. Ja, det går an å gjøre kolonnen om til varchar for eksempel og lagre «gold,max» som en string, men det er ikke en gunstig løsning, da dette vil gjøre databasen din mer kompleks enn nødvendig.

Kan du fortelle hvorfor du vil gjøre dette?
Mvh
Joachim M. Giæver
http://development.giaever.org
Brukerens avatar
Nukleuz
Seniormedlem
 
Innlegg: 1659
Registrert: 09.12.2006 2:08
Bosted: Tromsø

Re: Flere ID i samme rad MySQL

Innlegg ZnigeN » 30.11.2016 13:54

Dersom gold_max og food_max er relative og justeres regelmessig, så de kan like gjerne stå i samme tabell.
Ellers er jeg enig med Nukleuz, det er ikke vits å ha "statisk" data i en tabell som oppdateres ofte, for da blir indeksering og spørringer treigere.

Og som Nukleuz sier bør du uansett ikke legge de sammen i 1 kolonne, for da må du skille verdiene med en delimiter (feks komma) og så skrive logikken på frontend for å håndtere dataen (feks i PHP $gold = strip(',', $db->result->gold)[0]; og $gold_max = strip(',', $db->result->gold)[1];. Det blir styggere kode og vanskeligere å vedlikeholde senere. Og hvis du kan bruke int/float istedenfor varchar så bør du heller det.

Hvis du spør kun fordi du er redd for å ha for mange kolonner så er ikke det noe problem. Det finnes ikke noe fasit svar så en må vurdere og tilpasse det til hvordan dataen skal brukes. Er en grunn til at man har DBA'er :)
Brukerens avatar
ZnigeN
Medlem
 
Innlegg: 938
Registrert: 13.07.2005 1:30
Bosted: Grimstad


Gå til Grunnleggende PHP

Hvem er i forumet

Brukere som leser i dette forumet: Ingen registrerte brukere og 3 gjester

cron