Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Skall skapa ett sökregister på tävlingar.

Postades av 2004-10-05 00:32:51 - Gert Lindholm, i forum databaser, Tråden har 14 Kommentarer och lästs av 2377 personer

Så här ser det ut idag Excelform:
Småland
Hall Startdat Slutdat Final Tävlingsnamn Spelsätt Serie

Jönköping, Arena 2004-09-22 2004-09-25 2004-09-26 Super Six Tournament H D I 6s am, Super Six
Jönköping, Arena 2004-11-05 2004-11-06 2004-11-07 Mixed-SM H D 12s Scotch,
Jönköping, Arena 2004-12-27 2005-01-06 JP-fighten H D I 3s cup eu,
Jönköping, Arena 2005-02-05 2005-03-20 Bowling Arena Open H D I 8s hcp eu,

Vad jag då behöver är en tbl_Distrikt:
DistriktID
Distrikt

en tbl_hall
HallID
Hall

en tbl_tävling
TävlingId
DistriktId
HallId
TävlingsNamn
Startdatum
Slutdatum
Final


Men hur gör jag med tävlingssätten?

Det kan alltså i samma tävling vara både för dam herr eller bara dam individuellt och i lag. Det kan vara 2-manna 4-manna 5-manna tävling.
Det kan vara europeisk,amerikanskt baker eller scottish spelsätt.
Det kan vara pojk, flick, junior, ungdom, senior och veteran.
Det är 4, 6, 8, eller 12 serier.
Det kan vara Hcp, open eller både och.

Vet ej hur jag ska göra den tabellen/tabellerna?

Tacksam för förslag.
Gert


Svara

Sv: Skall skapa ett sökregister på tävlingar.

Postades av 2004-10-05 23:45:53 - Andreas Hillqvist

Låter som ett många till många förhållande. Här kommer ett förslag:

Tabell: tbl_Distrikt
Fält: DistriktID
Fält: DistriktNamn

Tabell: tbl_Hallar
Fält: HallID
Fält: HallNamn

Tabell: tbl_Tävlingar
Fält: TävlingsId
Fält: TävlingsDistrikt -> tbl_Distrikt.DistriktID
Fält: TävlingsHall -> tbl_Hall.HallID
Fält: TävlingsNamn
Fält: TävlingsStartdatum
Fält: TävlingsSlutdatum
Fält: TävlingsFinal

Tabell: tbl_Spelsätt
Fält: SpelsättId
Fält: SpelsättNamn

Tabell: tbl_TävlingarSpelsätt
Fält: TävlingsId -> tbl_Tävlingar.TävlingsId
Fält: SpelsättId -> tbl_Spelsätt.SpelsättId


Svara

Sv: Skall skapa ett sökregister på tävlingar.

Postades av 2004-10-07 11:17:57 - Gert Lindholm

Behöver jag inte i Tävlingstabellen Sätta upp fält om det är en

Jag förstår inte riktigt hur du menar med tabellen:
Tabell: tbl_TävlingarSpelsätt
Fält: TävlingsId -> tbl_Tävlingar.TävlingsId
Fält: SpelsättId -> tbl_Spelsätt.SpelsättId

Innebär det att jag i tbl_Tävling inte behöver några
Fält: TävlingHerr
Fält: TävlingDam
Fält: TävlingJunior
Fält: TävlingSenior
Fält: TävlingOldboys
Fält: TävlingSerier
Fält: TävlingSpelsätt
Fält: TävlingHcp

Eftersom det i en och samma tävling kan vara för:
Damer o Herrar
8 serier
Hcp och Open
europeiskt spelsätt

Eller i en annan tävling:
3-manna lag
12 serier
Open
Bakers



Tabell: tbl_Tävlingar
Fält: TävlingsId
Fält: TävlingsDistrikt -> tbl_Distrikt.DistriktID
Fält: TävlingsHall -> tbl_Hall.HallID
Fält: TävlingsNamn
Fält: TävlingsStartdatum
Fält: TävlingsSlutdatum
Fält: TävlingsFinal
Fält: TävlingSex // Dam, Herr, Junior, Senior, Oldboys
Fält: TävlingSerier // 4, 6, 8, 12 och så vidare
Fält: TävlingSpelsätt // eu, am, mix, baker, scotsh


Svara

Sv: Skall skapa ett sökregister på tävlingar.

Postades av 2004-10-07 11:42:14 - Patrik Dahlén

<info>
Innebär det att jag i tbl_Tävling inte behöver några
Fält: TävlingHerr
Fält: TävlingDam
Fält: TävlingJunior
Fält: TävlingSenior
Fält: TävlingOldboys
Fält: TävlingSerier
Fält: TävlingSpelsätt
Fält: TävlingHcp
</info>
Ja, det är precis vad det betyder.
Att bygga en lösning som ovan med en kolumn för varje typ är dålig databasdesign. Istället har man en tabell som innehåller de olika tävlingssätten. Därför använder man istället en design som Andreas givit dig. Den innehåller en tabell för varje "typ av objekt" som finns i systemet och sedan relationstabeller som kopplar ihop dessa. På detta sätt kan man ha 1-n och n-n relationer.


Svara

Sv: Skall skapa ett sökregister på tävlingar.

Postades av 2004-10-07 11:51:14 - Gert Lindholm

<info>
Tabell: tbl_TävlingarSpelsätt
Fält: TävlingsId -> tbl_Tävlingar.TävlingsId
Fält: SpelsättId -> tbl_Spelsätt.SpelsättId </info>

Har inte hängt med i hur man tänker på relationsnivå.

Betyder det att jag i denna tabell lägger upp om det är
TävlingsID SpelsättID Spelsätt
1 1 Herr
2 2 Dam
3 3 Junior
osv.

Men hur går kopplar man relationerna till detta då. Om det både är dam och herr klass, samt junior tävling?


Gert


Svara

Sv: Skall skapa ett sökregister på tävlingar.

Postades av 2004-10-07 12:03:29 - Patrik Dahlén

<info>
Tabell: tbl_Distrikt
Fält: DistriktID
Fält: DistriktNamn

Tabell: tbl_Hallar
Fält: HallID
Fält: HallNamn

Tabell: tbl_Tävlingar
Fält: TävlingsId
Fält: TävlingsDistrikt -> tbl_Distrikt.DistriktID
Fält: TävlingsHall -> tbl_Hall.HallID
Fält: TävlingsNamn
Fält: TävlingsStartdatum
Fält: TävlingsSlutdatum
Fält: TävlingsFinal

Tabell: tbl_Spelsätt
Fält: SpelsättId
Fält: SpelsättNamn

Tabell: tbl_TävlingarSpelsätt
Fält: TävlingsId -> tbl_Tävlingar.TävlingsId
Fält: SpelsättId -> tbl_Spelsätt.SpelsättId
</info>
Att gå igenom en tutorial i grundläggande databasdesign och en i SQL är nyttigt och ett måste om man ska pyssla med databaser.

Om vi kollar på tabellerna Andreas designat och stoppar in lite exempeldata

tblDistrikt
1 Stockholm
2 Göteborg

tblHallar
1 Kungshallen
2 Tennishallen
3 Vallahallen

tblTävlingar
1 Supertävling 1 1 'En supertävling' 2004-10-01 2004-10-05 2004-10-05

tblSpelsätt
1 Herr
2 Dam
3 Junior

tblTävlingarSpelsätt (detta är en relationstabell)
1 1
1 2
1 3

En tävlings alla spelsätt ser vi nu i tblTävlingarSpelsätt. Om vi har en tävling med ID=1 kan vi göra en JOIN mellan tblTävlingarSpelsätt och tblSpelsätt och få ut namnen på spelsätten för den valda tävlingen.
<code>
SELECT SpelsättNamn
FROM tblSpelsätt s JOIN tblTävlingarSpelsätt ts ON s.SpelsättId = ts.SpelsättID
</code>
Resultatet från denna fråga bli
<code>
Herr
Dam
Junior
</code>


Svara

Sv: Skall skapa ett sökregister på tävlingar.

Postades av 2004-10-07 12:13:14 - Gert Lindholm

Tack Patrik ska prova i em.

JAg håller på att klippa och klistra fr en Excel bok (heter det så) där det ser ut så här idag
<info>
Lidingö 2005-02-02 2005-02-05 2005-02-06 Lidingö Tourn.Viking Components H D I 6s am, Super Six

</info>
Som du ser så är det för Herrar damer den är internationell spelas över 6 serier med amerikanskt spelseätt. Som ingår den i Super Six som är en tunering

Gert


Svara

Sv: Skall skapa ett sökregister på tävlingar.

Postades av 2004-10-07 12:28:50 - Patrik Dahlén

Då kan du även lägga till tabellerna:

tblTurnering
TurneringsID
TurneringsNamn

tblTurneringsTävlingar
TurneringsID
TävlingsID

och på så sätt få fram alla tävlingar som är med i en turnering.
Alternativt går det att lägga en kolumn i tävlingstabellen för TurneringsID, men då blir det ett noll eller null värde om tävlingen inte ingår i någon turnering.


Svara

Sv: Skall skapa ett sökregister på tävlingar.

Postades av 2004-10-07 16:02:14 - Gert Lindholm

Jag måste väl någonstans i tbl_Tävling ha med ett Fält för Spelsätt Eller är det knutet till TävlingsID på ngt sätt? Och gör du detta i Access eller direkt i en SQL-sats från webbformuläret?

Gert


Svara

Sv: Skall skapa ett sökregister på tävlingar.

Postades av 2004-10-07 16:07:39 - Patrik Dahlén

Nej du måste inte ha något fält för spelsätt eftersom du har en relationstabell och den visar vilka spelsätt som ingår i en tävlig.
Det här är väldigt grundläggande design och du måste läsa någon tutorial för att lära dig grunderna om du ska förstå hela konceptet. Läs på om Third Normal Form (3NF).

<info>
Och gör du detta i Access eller direkt i en SQL-sats från webbformuläret?
</info>
Jag förstår inte frågan.
Relationerna ligger i tabellerna. För att ta ut data ställer du SQL-frågor. Antingen genom parameteriserade databaskommandon i koden eller genom stored procedures (queries i Access).


Svara

Sv: Skall skapa ett sökregister på tävlingar.

Postades av 2004-10-07 16:14:19 - Gert Lindholm

Vad jag menade var att man från sin webbsida direkt kan koppla relationerna med JOIN/INNERJOIN och då inte behöver skapa en fråga i Access mot SQL-frågan på webbsidan.


Svara

Sv: Skall skapa ett sökregister på tävlingar.

Postades av 2004-10-07 16:18:58 - Patrik Dahlén

Som jag sa
<info>
Relationerna ligger i tabellerna. För att ta ut data ställer du SQL-frågor. Antingen genom parameteriserade databaskommandon i koden eller genom stored procedures (queries i Access).
</info>
Man kopplar inte relationer, dom finns där genom relationstabellen. Det räcker med en SQL-fråga och det spelar ingen roll om du lägger frågan i databasen eller i koden, förutom ur säkerhetssynpunkt.


Svara

Sv: Skall skapa ett sökregister på tävlingar.

Postades av 2004-10-07 16:42:49 - Gert Lindholm

Hittade en bra länk via google när jag sökte på third normal form http://internet.physto.se/webbapplikationer/databasdesign/relationsmodell/konkret_exempel/forsta_forsoket/index.php

Ska läsa den först!


Svara

Sv: Skall skapa ett sökregister på tävlingar.

Postades av 2004-10-07 16:48:09 - Patrik Dahlén

Sen finns det lite tutorials i SQL på http://www.idg.se/webstudio/pub/object.asp?id=14


Svara

Sv: Skall skapa ett sökregister på tävlingar.

Postades av 2004-10-08 11:26:10 - Gert Lindholm

Här är ett exempel hur det ser ut i Excel boken TavlingsID 1:

DistriktsId HallId Start Slut Final TavlingsNamn OlikaSpelsätt
1 702 2004-10-30 2004-10-31 3-manna DM H D J 15s 3m Baker



Jag övergick till MSDN2000 För det är lättare att testa SQL-Satserna där.
Om jag nu då gör en SQL Sats som Du gav ett exempel på tidigare

SELECT dbo.Tavling.TavlingsId, dbo.Tavling.DistriktId, dbo.Tavling.HallId, dbo.Tavling.Start, dbo.Tavling.Slut, dbo.Tavling.Final, dbo.Tavling.TavlingsNamn,
dbo.tblSpelsatt.SpelsattsNamn
FROM dbo.tblTavlingarSpelsatt INNER JOIN
dbo.tblSpelsatt ON dbo.tblTavlingarSpelsatt.SpelsattsID = dbo.tblSpelsatt.SpelsattsID INNER JOIN
dbo.Tavling ON dbo.tblTavlingarSpelsatt.TavlingsID = dbo.Tavling.TavlingsId
WHERE (dbo.Tavling.TavlingsId = 1)


Så får jag ut sex rader Från Tävling spelsätt

TavlingsId DistriktId HallId Start Slut TavlingsNamn Spelsatt
1 1 702 2004-10-30 2004-10-31 3-manna DM Dam
1 1 702 2004-10-30 2004-10-31 3-manna DM Herr
1 1 702 2004-10-30 2004-10-31 3-manna DM Junior Herr
1 1 702 2004-10-30 2004-10-31 3-manna DM Junior Dam
1 1 702 2004-10-30 2004-10-31 3-manna DM Baker
1 1 702 2004-10-30 2004-10-31 3-manna DM 3-Manna


Kan man på något sätt ändra så att den skrivs ut på en rad?
Alltså att Slå samman kolumnen Spelsatt då man får:

TavlingsId DistriktId HallId Start Slut TavlingsNamn Spelsatt
1 1 702 2004-10-30 2004-10-31 3-manna DM Dam Herr Junior Herr Osv

Gert




Svara

Nyligen

  • 21:41 Automotive Services UK
  • 20:44 Erfarenhet av CBD-olja mot sömnpro
  • 12:13 Sex Dolls for Sale
  • 19:42 Online Casinos for Haitian Players
  • 19:38 Rekommendera något intressant
  • 19:13 Международная перевозка грузов
  • 00:01 DL Van Tuning | Exclusive Body Kit
  • 12:08 Indian casino

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 570 882
27 965
271 776
511
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies