Vinnaren i pepparkakshustävlingen!
2013-12-08, 13:30
  #1
Medlem
Kitakos avatar
Hej, behöver lite hjälp med hur jag bör strukturera min databas. Har försökt klura hit och dit, men alla lösningar verkar vara lika värdelösa när det kommer till funktionalitet.

Databasen ska användas till att spara lite olika värden från chatter, alltså själva chatternas information är det som sparas.

Saken är den att om det finns flera chatter med samma namn så ska de nyare chatternas namn/id läggas till med _1, _2 osv.. T.ex. om 3 chatter heter HEJ, första chatten blir HEJ, andra HEJ_1, tredje HEJ_2 men de ska fortfarande ligga under samma kategori, HEJ.

Kör redis som databas om ni undrar.
Citera
2013-12-08, 13:39
  #2
Medlem
John-Pauls avatar
Ingen bra lösning, tänk om.
Citera
2013-12-08, 13:41
  #3
Medlem
Kitakos avatar
Citat:
Ursprungligen postat av John-Paul
Ingen bra lösning, tänk om.

Hurså? Det med _1 osv är där för att det ska bli tydligt att det är ett nytt chat-rum då det första blivit fullt. Eller missförstår jag dig?
Citera
2013-12-08, 14:02
  #4
Medlem
John-Pauls avatar
Det låter som att du försöker skapa en unik nyckel utfrån något som inte är unikt, varför inte använda en betydelselös unik nyckel istället?
Citera
2013-12-08, 14:09
  #5
Medlem
Kitakos avatar
Citat:
Ursprungligen postat av John-Paul
Det låter som att du försöker skapa en unik nyckel utfrån något som inte är unikt, varför inte använda en betydelselös unik nyckel istället?

Jo, tänkt på det också. Men då kom problemet hur jag ska veta vilken nyckel som är vilken (i redis kan man inte söka efter värden på ett bra sätt, nyckeln är allt). Men sen insåg jag hur dum jag är, jag kan ju bara skicka runt nyckeln som en variabel eller liknande. Tackar!
Citera
2013-12-08, 14:16
  #6
Medlem
John-Pauls avatar
Ursäkta, jag svarade utan att veta vad redis är, jag trodde förhastat att det var en RDBM.
Citera
2013-12-08, 14:20
  #7
Medlem
Citat:
Ursprungligen postat av Kitako
Hurså? Det med _1 osv är där för att det ska bli tydligt att det är ett nytt chat-rum då det första blivit fullt. Eller missförstår jag dig?
Det med _1 är en dum ide.
Det är inte tydligt, kunde lika gärna vara någon som kallar sin chat för apa_1 eller vara chat klient nummer 2 som har apa som namn.

Allmänt du skall INTE ha kombinerade "fält" i en databas.
Som tex apa_1 detta innehåller 2 olika informationer.
(chat namn "apa" och sedan ett "_" tecken och sedan något slags index "1")

Mao, håller med före skribenten, tänk om.

Allmänt Du har INTE beskrivet problemet.
Du bara pratar om att göra en Databas.(varför?)

Vad skall du använda datan du lagrar till ? Eller:Varför behöver du datan ?
(Eller: Vilka frågor kommer du ställa mot databasen)
Hur länga skal data finns där ?
Hur tas datan bort ?

Beskriv gärna situationen, och vad du vill åstadkomma,
Annars är det bara gissnings tävling här..
Citera
2013-12-08, 15:23
  #8
Medlem
Kitakos avatar
Bygger en sida med chat-rum. Information om chat-rummen ska lagras i en databas, när chatrummet är tomt tas chatrummet bort från databasen. Det som ska lagras är bl.a. namnet på chatten, antal användare i chatten. Chattens namn är delad på 2 värden då flera chatter kanske får samma namn, därför ska kategorin kunna vara densamma, men chattens namn (namnet som visas) ska bli _1, _2 osv.. That's it.

Problemet blir när jag ska kolla om det finns en databas med samma namn, då man i redis inte kan söka efter värden, utan endast nyckeln. Det är därför jag vill att nyckeln ska vara av värde så att man iaf kan förstå vad man jobbar med.

Edit: Kom på en fin lösning! Kommer ha 2 table's för chatterna. I ena lagrar jag t.ex. chat:ChattensNamn id 1, och om jag får fler chatter med samma namn lägger jag bara till id2 1243, d.v.s. id'n för nästa chat. Och i andra table'n har jag chat_info:1 "info om ChattensNamn". Innan ni säger emot, kolla upp info om redis så ser ni nog att det här är ett av få sätt att lösa det...
__________________
Senast redigerad av Kitako 2013-12-08 kl. 15:29.
Citera
2013-12-08, 15:44
  #9
Medlem
John-Pauls avatar
kanske ska prova med ett javascript så kan du skapa en loop och bygga upp din nyckel
Citera
2013-12-08, 21:31
  #10
Moderator
Protons avatar
Övriga utvecklingsfrågor --> Databaser
/Moderator
Citera
2013-12-11, 16:54
  #11
Medlem
fnirps avatar
Citat:
Ursprungligen postat av Kitako
Innan ni säger emot, kolla upp info om redis så ser ni nog att det här är ett av få sätt att lösa det...

Säger inte emot, för jag kan inte Redis... Men jag tycker problemet ligger tidigare än så. Chattens namn ska inte kunna sättas av användarna själva, de står för chattens innehåll. Chattens namn borde vara ett unikt värde som sätts då chatten startar. Då får du unika chattar som lätt kan lagras, utan att krångla till det. Varför syssla med brandsläckning, när man kan bygga bort problemet?
Citera
2013-12-15, 13:17
  #12
Medlem
Kitakos avatar
Citat:
Ursprungligen postat av fnirp
Säger inte emot, för jag kan inte Redis... Men jag tycker problemet ligger tidigare än så. Chattens namn ska inte kunna sättas av användarna själva, de står för chattens innehåll. Chattens namn borde vara ett unikt värde som sätts då chatten startar. Då får du unika chattar som lätt kan lagras, utan att krångla till det. Varför syssla med brandsläckning, när man kan bygga bort problemet?

Löste det med att sätta chattens nyckel till en unix-timestamp följandes av 4st slumpmässiga siffror, som checkar att de inte redan finns, vilket ger en möjlighet till ~många chatter skapas samtidigt.
Citera

Stöd Flashback

Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!

Stöd Flashback