Kom ihåg mig?
Home Menu

Menu


Tabeller i MySQL

 
Ämnesverktyg Visningsalternativ
Oläst 2005-05-26, 15:58 #11
aikon aikon är inte uppkopplad
Medlem
 
Reg.datum: Feb 2004
Inlägg: 277
aikon aikon är inte uppkopplad
Medlem
 
Reg.datum: Feb 2004
Inlägg: 277
Nå zoran, du frågade. Dålig design eller ej?
aikon är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-05-26, 16:23 #12
Eddie Eddie är inte uppkopplad
Medlem
 
Reg.datum: Jan 2005
Inlägg: 83
Eddie Eddie är inte uppkopplad
Medlem
 
Reg.datum: Jan 2005
Inlägg: 83
Citat:
Originally posted by aikon@May 25 2005, 18:39
Det är historiska kursdata för finansiella instrument, en tabell per instrument. Det är samma typ av data, tabeller skapas automatiskt. En post läggs till per dag. Har du förslag på annan design, välkommen att skriva
EDIT: ett alternativ är förstås att ha en gigantisk tabell, med ett extra fält som är instrumentets namn. Tycker dock att detta skulle göra databasen väldigt svåröverskådlig och är tveksam om det är några prestandamässiga fördelar heller.

Skulle säga att det är lite dålig design ja. Varför inte ha en tabell där du har namnen för instrumenten sen har du bara ett fält i din tabell med all infon som pekar till rätt instrument för att få fram namnet osv.

Det tycker jag iaf låter mer överskådligt än att ha 1000+ tabeller.
Eddie är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-05-26, 18:20 #13
aikon aikon är inte uppkopplad
Medlem
 
Reg.datum: Feb 2004
Inlägg: 277
aikon aikon är inte uppkopplad
Medlem
 
Reg.datum: Feb 2004
Inlägg: 277
Citat:
Ursprungligen postat av wallabou
Citat:
Ursprungligen postat av aikon
Det är historiska kursdata för finansiella instrument, en tabell per instrument. Det är samma typ av data, tabeller skapas automatiskt. En post läggs till per dag. Har du förslag på annan design, välkommen att skriva
EDIT: ett alternativ är förstås att ha en gigantisk tabell, med ett extra fält som är instrumentets namn. Tycker dock att detta skulle göra databasen väldigt svåröverskådlig och är tveksam om det är några prestandamässiga fördelar heller.
Skulle säga att det är lite dålig design ja. Varför inte ha en tabell där du har namnen för instrumenten sen har du bara ett fält i din tabell med all infon som pekar till rätt instrument för att få fram namnet osv.
Det tycker jag iaf låter mer överskådligt än att ha 1000+ tabeller.
Jag förstår inte riktigt hur du menar. Mina tabeller ser alltså ut så här ungefär:
Datum Högst Lägst Stängningskurs Omsättning

Instrumentets (oftast aktiens) namn finns i tabellens namn. Varje post är kursdata för en dag, från 1995 till idag.

Hur lägger jag upp det på något bättre och fortfarande överskådligt sätt?

Jag har även några tabeller med annan typ av data, där instrumentnamnet ligger i ett fält. Men där finns inte tidsdimensionen.
aikon är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-05-26, 18:32 #14
grazzy grazzy är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Mar 2004
Inlägg: 3 471
grazzy grazzy är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Mar 2004
Inlägg: 3 471
Två tabeller,
instrument {id, namn}
data {instrument_id, resten_av_datan, ..., ... etc }

Jag kanske har missat nåt viktigt här dock?
grazzy är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-05-26, 18:48 #15
aikon aikon är inte uppkopplad
Medlem
 
Reg.datum: Feb 2004
Inlägg: 277
aikon aikon är inte uppkopplad
Medlem
 
Reg.datum: Feb 2004
Inlägg: 277
Citat:
Originally posted by grazzy@May 26 2005, 18:32
Två tabeller,
instrument {id, namn}
data {instrument_id, resten_av_datan, ..., ... etc }
Jag kanske har missat nåt viktigt här dock?
OK, det är i princip min alternativa lösning som jag skrev ovan, bara att instrumentnamnet lyfts ut och ersatts av ett id. Min invändning mot det är att det blir svåröverskådligt att ha alla 1000+ instrument för alla datum mellan 1995 och idag i en enda gigantisk tabell. Blir det inte också mer ineffektivt att behöva ha en WHERE i varje SELECT för att sortera ut rätt instrument, i stället för att som nu göra select direkt på en mindre tabell?
aikon är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-05-26, 18:54 #16
grazzy grazzy är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Mar 2004
Inlägg: 3 471
grazzy grazzy är inte uppkopplad
Klarade millennium-buggen
 
Reg.datum: Mar 2004
Inlägg: 3 471
I princip inte. Dina index måste vara korrekta dock.
grazzy är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-05-26, 19:06 #17
aikon aikon är inte uppkopplad
Medlem
 
Reg.datum: Feb 2004
Inlägg: 277
aikon aikon är inte uppkopplad
Medlem
 
Reg.datum: Feb 2004
Inlägg: 277
Citat:
Originally posted by grazzy@May 26 2005, 18:54
I princip inte. Dina index måste vara korrekta dock.
Ja, det var väl en parentes det där med WHERE. Men som sagt överskådligheten. Det är en del manuellt pulande med datan, därför underlättar det mycket att ha en tabell för varje instrument, så man i phpmyadmin kan gå in och titta på viss data, utan att köra något sql-anrop varje gång.
aikon är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-05-26, 21:45 #18
kullervos avatar
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
 
Reg.datum: Dec 2003
Inlägg: 1 519
kullervo kullervo är inte uppkopplad
Bara ett inlägg till!
kullervos avatar
 
Reg.datum: Dec 2003
Inlägg: 1 519
Citat:
Ursprungligen postat av aikon
Citat:
Ursprungligen postat av grazzy
I princip inte. Dina index måste vara korrekta dock.
Ja, det var väl en parentes det där med WHERE. Men som sagt överskådligheten. Det är en del manuellt pulande med datan, därför underlättar det mycket att ha en tabell för varje instrument, så man i phpmyadmin kan gå in och titta på viss data, utan att köra något sql-anrop varje gång.
Båda metoderna är ju egentligen lika överskådliga. I en viss applikation (såsom phpMyAdmin och förmodligen de flesta andra GUI) blir metoden med fler tabeller mer överskådlig som du säger, och om det underlättar mycket för dig så skulle åtminstonde jag köra så. Det är ju inte några riktiga nackdelar med att ha det på det viset.
kullervo är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-05-27, 14:45 #19
zorans avatar
zoran zoran är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2004
Inlägg: 598
zoran zoran är inte uppkopplad
Mycket flitig postare
zorans avatar
 
Reg.datum: Jun 2004
Inlägg: 598
Citat:
Originally posted by aikon@May 26 2005, 15:58
Nå zoran, du frågade. Dålig design eller ej?
Generellt sett, definitivt. Den bryter klart mot normaliseringsmetoden. Samma typ av data ska finnas i samma tabell.

Egentligen är det kanske tillsynes överskådligt. Men tabellnamnen måste hårdkodas i applikationen eller någon algoritm, för att beräkna tabellnamnen, skapas. Det kanske fungerar jättebra idag, men imorgon när du behöver ändra något är det plötsligt mycket svårare. Ditt skript eller du själv måste hålla reda på olika tabellnamn/instrumet. Dvs. du eller ditt skript gör det jobbet som databasmotorn är designad för.

Jag vet inte riktigt varför du tycker att det är jobbigt att lägga in en "where id=x" i dina querys.

Sen vet jag inte hur du kan tycka att det är överskådligt att "show tables" i mysql returnerar 1400 rader.

Om du dessutom råkar ha en rad data i varje tabell så har du ökat din datalagring med sisodär 200-300%, eftersom för varje rad data måste du lagra info om fälten som egentligen skulle kunna delas av alla tabeller.

Hursomhelst, den bästa metoden NI kan använda är ju naturligtvis den metoden som fungerar för er och den metoden ni har arbetsprocesser för. Objektivt sett är ni ute och cyklar en smula.

/Zoran
zoran är inte uppkopplad   Svara med citatSvara med citat
Oläst 2005-05-27, 14:50 #20
zorans avatar
zoran zoran är inte uppkopplad
Mycket flitig postare
 
Reg.datum: Jun 2004
Inlägg: 598
zoran zoran är inte uppkopplad
Mycket flitig postare
zorans avatar
 
Reg.datum: Jun 2004
Inlägg: 598
Citat:
Ursprungligen postat av kullervo
Citat:
Originally posted by -aikon@May 26 2005, 18:06
Citat:
Ursprungligen postat av grazzy
I princip inte. Dina index måste vara korrekta dock.
Ja, det var väl en parentes det där med WHERE. Men som sagt överskådligheten. Det är en del manuellt pulande med datan, därför underlättar det mycket att ha en tabell för varje instrument, så man i phpmyadmin kan gå in och titta på viss data, utan att köra något sql-anrop varje gång.

Båda metoderna är ju egentligen lika överskådliga. I en viss applikation (såsom phpMyAdmin och förmodligen de flesta andra GUI) blir metoden med fler tabeller mer överskådlig som du säger, och om det underlättar mycket för dig så skulle åtminstonde jag köra så. Det är ju inte några riktiga nackdelar med att ha det på det viset.
Eller jo.

Så länge du kan "gissa" hur din tabell ska heta är det fint. Vad händer när "styrelsen" beslutar att en instrument foo ska heta foo_a eller liknande. Det kanske inte tillämpar just här, men i andra lägen. Man är i princip låst.

Har man en tabell där man lagrar ID, och sen attributen för det id-et, och sen data i en annan tabell som man knyter till ID-et i den första, gärna med foreign keys med "on update cascade on delete cascade", så kan du göra en ändring i datat helt transparant för din applikation.

Skulle man plötsligt få för sig att ändra nomenklaturen i första fallet måste du hacka om din applikation för att det ska fungera.

/Zoran
zoran ä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 12:25.

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