2010-02-22, 14:30
  #1
Medlem
Lich.queens avatar
Hej

Håller på att spindla nasdaq efter börsdata som jag sedan lagrar i en mysql databas. Just nu har varje företag ett table och varje prisuppgift, dvs vad priset var vid en viss tidpunkt, sparas som en kolumn. Jag var dock klantig nog att jag inte la till valutan för varje aktie, vilket jag nu behöver göra. Googlade lite men antar att jag inte är tillräckligt kunnig för att ens formulera frågan.

Jag behöver alltså för varje kolumn i säg tablet "ASEA" lägga till en TEXT med värdet "SEK", någon vänlig själ som kan ge mig kommandot?
Citera
2010-02-22, 14:50
  #2
Medlem
Protons avatar
Har du en tabelll per företag?!?!?!?! Verkar ju helt orimligt.

Iaf, SQL-en du är ute efter ser ju ut nånting sånt här
[PHP]
UPDATE companies SET unit_of_measure='SEK' WHERE company_name='ASEA'
[/PHP]
Du får naturligtvis fixa till den så att den motsvarar tabellnamnen och attributnamnen.
Citera
2010-02-22, 14:57
  #3
Medlem
Lich.queens avatar
Jadu jag tyckte det var en lämplig lösning jag skapade ett nytt schema och har för tillfället ca 700 tables och 200 000 columner. Finns säkert bättre lösningar men det fungerar

[PHP]UPDATE companies SET unit_of_measure='SEK' WHERE company_name='ASEA'
[/PHP]

Gör unit_of_measuer att en lämplig datatyp väljs? Borde även gå att helt ta bort WHERE clausulen?

Tack förresten, alternativet hade varit att droppa allt och börja om från början
Citera
2010-02-22, 22:38
  #4
Medlem
Protons avatar
unit_of_measure är ett fiktivt namn på ett attribut, det har inget med datatypen att göra. Datatypen för ett attribut definierar du när du lägger till det i din tabell. Lämplig datatyp för detta i detta fall är en varchar. Tar du bort WHERE-villkoret kommer samtliga poster i tabellen att uppdateras.

För övrigt ser jag framför mej en fullständigt horribel uppgift att skapa nån form av ordning i din databas vad det lider. Jag hoppas innerligt att du inte har 200 tusen kolumner i en och samma tabell?

Du borde läsa på en hel del om normalisering om databaser och framförallt fördelarna med en normaliserad databas.

För övrigt är det ingen dum ide med den där databasstrukturen att kasta ut allt och göra om, göra rätt. Det där kommer innebära enorma problem för dej framöver, dessutom är det inte ett speciellt effektivt sätt att lagra information i en databas på det där sättet heller. Ju mer jag tänker på det destå mer inser jag vilka mardrömmar jag kommer ha inatt....
__________________
Senast redigerad av Proton 2010-02-22 kl. 22:41.
Citera
2010-02-22, 22:45
  #5
Medlem
Lich.queens avatar
Jag har ett tabell för varje företag, och varje prisuppgift för det företaget är en column. Varje kolumn innehåller pris, högsta och lägsta pris för dagen, volym för handeln etc.

Tar emot tipps på en bättre struktur
Citera
2010-02-22, 22:59
  #6
Medlem
Protons avatar
På ddet sätt du har gjort nu blir det ju praktiskt taget omöjligt att ha nån form av historik på datat.

Ett avsevärt bättre sätt att lagra data på är i detta fall att ha EN tabell som håller rätt på alla företag åt dej. bortsett från namnet bör ju detta företag ha en primärnyckel, finns säker nåt nasdaq-id eller nåt sånt man kan använda. I värsta fall kan man ta till svenska organisationsnummer.

Denna tabell kan sedan kopplas mot till exempel en aktietabell. De flesta företag har ju en massa a å b-aktier å allt vad det heter. Den här tabellen kommer att hålla rätt på dels företagsid som jag nämnde nyss, sen kanske den kan hålla typen med(a eller b eller fan-och-hans-moster-aktie) samt ett dataid.

Detta dataid kommer att utgöra primärnyckel i ytterligare en tabell, kallad data. HÄR ska du ha min-max-medel-whatever i. Du borde stoppa i ett datum här med, så du kan kolla bakåt i tiden sen vad det lider om du skulle villja ha stats över tiden.

Det finns ju en anledning till varför det heter relationsdatabaser, och det här är ett exempel på när man modellerat och normaliserat betydligt smartare än det där andra trasslet du presenterade.

Förstår du hur jag menar?
Citera
2010-02-23, 08:15
  #7
Medlem
Lich.queens avatar
Kan även tillägga att jag sparar tidpunkten och ett ökande id i kolumnerna så att jag kan plotta data historiskt.
Jag hävdar inte att detta upplägg på något sätt är bättre men det är kanske bra nog för ändamålet?
Hur som helst tack för kommandot det fungerade utmärkt
Citera

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in