Citat:
Ursprungligen postat av Althalos
Ä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 ;-)