Vinnaren i pepparkakshustävlingen!
2013-02-25, 17:27
  #1
Medlem
Abbadohns avatar
Hej!

Funderar lite på hur jag ska lägga upp tabellerna i databasen. Databasen kommer innehålla veckans (och tidigare veckors) lottodragningar. Både lotto ett och lotto två.

Det jag funderar på är om:
  1. Jag ska ha en tabell som t.ex. heter dragningar. I denna tabell ska det finnas kolumner för datum, om det är lotto ett eller lotto två, första numret, andra numret, tredje numret, fjärde numret, femte numret, sjätte numret, sjunde numret, extranummer ett, extranummer två, extranummer tre och extranummer fyra.
  2. Jag ska ha olika tabeller där varje nummer har en tabell. I dessa tabeller ska det finnas kolumner för vilka datum som dessa var aktiva och för vilken av lotto ett eller lotto två den fanns med i.

Vilket upplägg är bäst om man ska kunna analysera vilka lottonummer som är ofta med varandra och så vidare?
Citera
2013-02-25, 20:09
  #2
Medlem
gotos avatar
Hej! Jag vet inget om lotto, men det låter som du gör det lite väl komplicerat.

Borde det inte räcka med en tabell med datum, lotto, nummer? Den statistik du vill ha borde väl kunna tas fram med SQL? Hursomhelst skulle jag dra mig för att göra en tabell för nummer. Låter mer rimligt att Lotto är en tabell som relaterar till-många dragningar.

Sen vill jag inflika något kontroversiellt: SQL är överskattat och överanvänt. Problem liknande det du beskriver involverar ofta väldigt lite data, och i dessa fall kan man med fördel använda en in-memory databas, eller varför inte bara egna datatyper eller structar som kan serialiseras och sparas pa disken.

I C# är väldigt lätt om du använder Linq.
Citera
2013-02-25, 23:22
  #3
Medlem
Abbadohns avatar
Citat:
Ursprungligen postat av goto
Hej! Jag vet inget om lotto, men det låter som du gör det lite väl komplicerat.

Borde det inte räcka med en tabell med datum, lotto, nummer? Den statistik du vill ha borde väl kunna tas fram med SQL? Hursomhelst skulle jag dra mig för att göra en tabell för nummer. Låter mer rimligt att Lotto är en tabell som relaterar till-många dragningar.

Sen vill jag inflika något kontroversiellt: SQL är överskattat och överanvänt. Problem liknande det du beskriver involverar ofta väldigt lite data, och i dessa fall kan man med fördel använda en in-memory databas, eller varför inte bara egna datatyper eller structar som kan serialiseras och sparas pa disken.

I C# är väldigt lätt om du använder Linq.
Saken är den att jag inte kan ett dugg om C# och tänkte att jag skulle kunna använda detta som en hemsida, då det är hemsidor jag kan tillräckligt mycket om. Kanske hade varit kul att testa något nytt dock.
Citera
2013-02-26, 18:44
  #4
Medlem
Visst kan du serialisera data och lägga det någonstans. Eller så kan du använda databasen till det den är gjord för.
SQL är överanvänt och... Överskattat? Jojo.

Nåväl.

Spontant:

Tabell nummer 1:
Dragningar
- Detaljerad information om varje dragning (ex. datum, omsättning, utdelning o.s.v., vad du nu behöver)
Tabell nummer 2:
Lottonummer
- En kolumn för varje boll + en kolumn som refererar till tabellen dragningar.

Ska man vara överkurs kan man göra en tabell för bollar, där varje boll berättar vilket värde den har samt vilken boll den är (nummer 1, 2, 3... extraboll 1, 2, 3...) och låter den referera till dragningar.

Gör man som ovan föreslagit "en tabell med datum, lott, nummer" så måste man serialisera kolumnen nummer - och då går man från något som kallas tredje normalformen - det som är grundläggande för relationsdatabaser.

Vill du hellre sitta och mecka med textfiler som du låter ditt språk tolka så kan du förstås lära dig det, men planerar du göra något större är det lika gärna lära dig göra rätt från början. För det är enklare att göra för mycket tills du lär dig vad du ska skala av, än att du gör för lite och vänjer dig med att det fungerar ändå...
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