Kom ihåg mig?
Home Menu

Menu


Setup för databasen - ska spara många små värden

 
Ämnesverktyg Visningsalternativ
Oläst 2011-07-01, 15:28 #1
coredevs avatar
coredev coredev är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Sep 2007
Inlägg: 1 554
coredev coredev är inte uppkopplad
Bara ett inlägg till!
coredevs avatar
 
Reg.datum: Sep 2007
Inlägg: 1 554
Citat:
Ursprungligen postat av Althalos Visa inlägg
Ändamålet är en applikation där vardera användare har varsin aktieportfölj. Varje minut så uppdaterar jag min databas över aktiernas värde. I efterhand vill jag kunna visa hur aktier/portföljer har utvecklats i snygga grafer. Så jag tänker mig att jag sparar aktiernas värde varje gång.

Säg nu har jag har 100 olika aktier som jag följer, i så fall så får jag 6000 värden att lägga in i databasen varje timma. Efter ett par veckor blir antalet rader i mySQL-databasen helt enormt, om jag väljer att ge varje värde en egen rad. Alternativ jag har funderat på är att ha en rad per aktie och sedan spara alla historik om den aktien i en json/csv-sträng.
Vad du vill göra är att lägga historiken för aktierna i en egen tabell. I en annan tabell sparar du vilka aktier som finns. I en tredje tabell sparar du kopplingen mot användarna. Till sist joinar du ihop allt när du skall hämta upp statistiken för användaren.

tb_user - id, name, etc - innehåller användare, dvs en rad per användare
tb_stock - id, name, etc - innehåller en lista med alla tillgängliga aktier, dvs en rad per aktie
tb_stock_history - id, stock_id, price, setdate - innehåller aktiernas prisändringar, dvs en rad per prisändring per aktie
tb_user_stock, id, user_id, stock_id - innehåller kopplingen mellan användare och aktie, dvs en rad per aktie som en användare följer

Disclaimer: Med reservation för att jag läste din fråga slarvigt eller för att jag har missförstått något ;-)
coredev är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-07-01, 16:19 #2
Althalos Althalos är inte uppkopplad
Medlem
 
Reg.datum: Jan 2006
Inlägg: 282
Althalos Althalos är inte uppkopplad
Medlem
 
Reg.datum: Jan 2006
Inlägg: 282
Okej, då ska jag definitivt använda MyISAM.

Det var typ det upplägget som coredev beskriver som jag har tänkt mig, funderade egentligen mest på om det lönade sig att försöka minska antalet rader på något sätt. Men nu kör jag på detta så får vi se hur det blir
Althalos är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-07-02, 19:45 #3
dAEks avatar
dAEk dAEk är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2006
Inlägg: 678
dAEk dAEk är inte uppkopplad
Mycket flitig postare
dAEks avatar
 
Reg.datum: Dec 2006
Inlägg: 678
Ska du bara hantera de svenska börserna eller även utländska?

Hur hanterar du en split om du sparar alla värden som en sträng? Det känns inte helt genomtänkt.

coredevs designförslag är väl ok men jag hade sparat daglig och historisk data i olika tabeller eftersom det borde bli mindre belastning på databasen med tanke på hur ofta indexen behöver uppdateras annars. Daily-tabellen blir liten medan den stora tabellen bara behöver uppdateras en gång per dygn och det är när dagens prisskillnader skyfflas över till historiken.

En kort men viktig kommentar ang. mysql: vill man ha dataintegritet och stöd för transaktioner går myisam bort.
dAEk är inte uppkopplad   Svara med citatSvara med citat
Oläst 2011-07-04, 19:30 #4
dAEks avatar
dAEk dAEk är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Dec 2006
Inlägg: 678
dAEk dAEk är inte uppkopplad
Mycket flitig postare
dAEks avatar
 
Reg.datum: Dec 2006
Inlägg: 678
Citat:
Ursprungligen postat av dAEk Visa inlägg
jag hade sparat daglig och historisk data i olika tabeller eftersom det borde bli mindre belastning på databasen med tanke på hur ofta indexen behöver uppdateras annars.
Uppdatering: Nja. I historiktabellen borde det bara bli en rad per bankdag med stängningspriset. Du borde inte behöva något mer men om du vill kunna rendera t.ex. candlesticks behöver du mer än bara stängningskursen (t.ex. dagshögsta, dagslägsta & öppningspriset). Utöver det har jag svårt att se vad mer du kan tänkas behöva. Att spara minut för minut historiskt ser jag ingen mening med om du bara ska göra ett diagram över folks portföljer.
dAEk är inte uppkopplad   Svara med citatSvara med citat
Svara


Aktiva användare som för närvarande tittar på det här ämnet: 1 (0 medlemmar och 1 gäster)
 

Regler för att posta
Du får inte posta nya ämnen
Du får inte posta svar
Du får inte posta bifogade filer
Du får inte redigera dina inlägg

BB-kod är
Smilies är
[IMG]-kod är
HTML-kod är av

Forumhopp


Alla tider är GMT +2. Klockan är nu 23:21.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson
 
Copyright © 2017