BC3 · Teknisk dokumentation
ER-diagrammer
Kendte tabeller i BC3 og BridgeOrg med feltniveau, relationer og mapping fra hvert skærmfelt i prototypen til sit databasefelt.
Sådan læses modellen
FORELØBIG MODEL – relationer og felter verificeres løbende
- Tabelnavnene er kendte fra BC3 (xxxx.fdb) og BridgeOrg.
- Feltnavne og fremmednøgler er arbejdsforslag og er markeret ANTAGET, indtil de er verificeret mod en rigtig installation. Brug dem ikke som facit.
- Relationer med 1:N angiver den formodede retning fra overordnet til underordnet tabel.
Tabeller og felter
BC3 · Turneringshierarki
Turnering på øverste niveau i BC3.
| Felt | Type | Nøgle | Beskrivelse | Status |
|---|---|---|---|---|
| ID | INTEGER | PK | Turneringens nøgle. | ANTAGET |
| NAME | VARCHAR | Turneringens navn. | ANTAGET | |
| STARTDATE | DATE | Startdato. | ANTAGET | |
| CLUBNO | INTEGER | FK | Klubnummer (MEM_CLUB). | ANTAGET |
Gruppe/række under en turnering.
| Felt | Type | Nøgle | Beskrivelse | Status |
|---|---|---|---|---|
| ID | INTEGER | PK | Gruppens nøgle. | ANTAGET |
| MAINTOURNAMENTID | INTEGER | FK | Til MAINTOURNAMENT. | ANTAGET |
| NAME | VARCHAR | Gruppens/rækkens navn. | ANTAGET |
Sektion under en gruppeturnering.
| Felt | Type | Nøgle | Beskrivelse | Status |
|---|---|---|---|---|
| ID | INTEGER | PK | Sektionens nøgle. | ANTAGET |
| GROUPTOURNAMENTID | INTEGER | FK | Til GROUPTOURNAMENT. | ANTAGET |
| LETTER | CHAR | Sektionsbogstav (A, B, C …). | ANTAGET | |
| MOVEMENT | VARCHAR | Bevægelse/skema. | ANTAGET |
Runde i en sektion.
| Felt | Type | Nøgle | Beskrivelse | Status |
|---|---|---|---|---|
| ID | INTEGER | PK | Rundens nøgle. | ANTAGET |
| SECTIONID | INTEGER | FK | Til SECTION. | ANTAGET |
| ROUNDNO | INTEGER | Rundenummer. | ANTAGET |
Kamp/møde mellem to par eller hold i en runde.
| Felt | Type | Nøgle | Beskrivelse | Status |
|---|---|---|---|---|
| ID | INTEGER | PK | Kampens nøgle. | ANTAGET |
| ROUNDID | INTEGER | FK | Til ROUND. | ANTAGET |
| TABLENO | INTEGER | Bordnummer. | ANTAGET | |
| NSPAIR | INTEGER | Nord/syd-par eller -hold. | ANTAGET | |
| EWPAIR | INTEGER | Øst/vest-par eller -hold. | ANTAGET |
Resultatpost pr. spil/kamp.
| Felt | Type | Nøgle | Beskrivelse | Status |
|---|---|---|---|---|
| ID | INTEGER | PK | Resultatets nøgle. | ANTAGET |
| ROUNDMATCHID | INTEGER | FK | Til ROUNDMATCH. | ANTAGET |
| BOARDNO | INTEGER | Spilnummer. | ANTAGET | |
| CONTRACT | VARCHAR | Meldt kontrakt. | ANTAGET | |
| SCORE | INTEGER | Score i point. | ANTAGET | |
| MATCHPOINTS | NUMERIC | Score i matchpoint/IMP. | ANTAGET |
BC3 · Deltagere
Hold eller par tilknyttet en sektion.
| Felt | Type | Nøgle | Beskrivelse | Status |
|---|---|---|---|---|
| ID | INTEGER | PK | Holdets nøgle. | ANTAGET |
| SECTIONID | INTEGER | FK | Til SECTION. | ANTAGET |
| TEAMNO | INTEGER | Hold-/parnummer. | ANTAGET | |
| TEAMNAME | VARCHAR | Holdnavn. | ANTAGET |
Spiller tilknyttet en sektion (tilmelding/startliste).
| Felt | Type | Nøgle | Beskrivelse | Status |
|---|---|---|---|---|
| ID | INTEGER | PK | Postens nøgle. | ANTAGET |
| SECTIONID | INTEGER | FK | Til SECTION. | ANTAGET |
| SECTIONTEAMID | INTEGER | FK | Til SECTIONTEAM. | ANTAGET |
| MEMBERNO | INTEGER | FK | Medlemsnummer (MEM_MEMBER). Relationen er et åbent punkt. | ANTAGET |
| PLAYERNAME | VARCHAR | Spillerens navn som vist i startliste. | ANTAGET | |
| DIRECTION | CHAR | Retning/plads ved bordet. | ANTAGET |
BC3 · Spil
Specifikation af det enkelte spils fordeling.
| Felt | Type | Nøgle | Beskrivelse | Status |
|---|---|---|---|---|
| ID | INTEGER | PK | Nøgle. | ANTAGET |
| SECTIONID | INTEGER | FK | Til SECTION. | ANTAGET |
| BOARDNO | INTEGER | Spilnummer. | ANTAGET | |
| DEALER | CHAR | Giver. | ANTAGET | |
| VULNERABILITY | CHAR | Zoneforhold. | ANTAGET |
Det enkelte spil som spillet ved bordet.
| Felt | Type | Nøgle | Beskrivelse | Status |
|---|---|---|---|---|
| ID | INTEGER | PK | Nøgle. | ANTAGET |
| BOARDSPECID | INTEGER | FK | Til BOARDSPEC. | ANTAGET |
| NORTHHAND | VARCHAR | Nords kort. | ANTAGET | |
| EASTHAND | VARCHAR | Østs kort. | ANTAGET | |
| SOUTHHAND | VARCHAR | Syds kort. | ANTAGET | |
| WESTHAND | VARCHAR | Vests kort. | ANTAGET |
BC3 · Medlemmer
Medlem i klubbens BC3-database.
| Felt | Type | Nøgle | Beskrivelse | Status |
|---|---|---|---|---|
| MEMBERNO | INTEGER | PK | Medlemsnummer. | ANTAGET |
| FIRSTNAME | VARCHAR | Fornavn. | ANTAGET | |
| LASTNAME | VARCHAR | Efternavn. | ANTAGET | |
| ADDRESS | VARCHAR | Adresse. | ANTAGET | |
| ZIPCODE | VARCHAR | Postnummer. | ANTAGET | |
| CITY | VARCHAR | By. | ANTAGET | |
| VARCHAR | E-mail. | ANTAGET | ||
| PHONE | VARCHAR | Telefon. | ANTAGET | |
| BIRTHDATE | DATE | Fødselsdato. | ANTAGET | |
| CLUBNO | INTEGER | FK | Klub (MEM_CLUB). | ANTAGET |
Klubben som ejer BC3-databasen (xxxx.fdb).
| Felt | Type | Nøgle | Beskrivelse | Status |
|---|---|---|---|---|
| CLUBNO | INTEGER | PK | Klubnummer, fx 2275. | ANTAGET |
| CLUBNAME | VARCHAR | Klubnavn. | ANTAGET | |
| DISTRICT | VARCHAR | Distrikt. | ANTAGET |
BC3 · Point
Mesterpoint pr. spiller og turnering.
| Felt | Type | Nøgle | Beskrivelse | Status |
|---|---|---|---|---|
| ID | INTEGER | PK | Nøgle. | ANTAGET |
| MEMBERNO | INTEGER | FK | Til MEM_MEMBER. | ANTAGET |
| MAINTOURNAMENTID | INTEGER | FK | Til MAINTOURNAMENT. | ANTAGET |
| CATEGORY | VARCHAR | Guld, sølv eller bronze. | ANTAGET | |
| POINTS | NUMERIC | Antal point. | ANTAGET |
BridgeOrg · Stamdata
Klubber i forbundet.
| Felt | Type | Nøgle | Beskrivelse | Status |
|---|---|---|---|---|
| KLUBNR | INTEGER | PK | Klubnummer. | ANTAGET |
| KLUBNAVN | VARCHAR | Klubbens navn. | ANTAGET | |
| DISTRIKT | VARCHAR | Distrikt. | ANTAGET | |
| KREDS | VARCHAR | Kreds. | ANTAGET |
Medlemmer centralt i forbundet.
| Felt | Type | Nøgle | Beskrivelse | Status |
|---|---|---|---|---|
| MEDLEMSNR | INTEGER | PK | Medlemsnummer. | ANTAGET |
| NAVN | VARCHAR | Navn. | ANTAGET | |
| VARCHAR | E-mail (login-identifikation). | ANTAGET | ||
| HANDICAP | NUMERIC | Aktuelt handicap. | ANTAGET |
Relation mellem medlem og klub, inkl. sæson og kontingent.
| Felt | Type | Nøgle | Beskrivelse | Status |
|---|---|---|---|---|
| ID | INTEGER | PK | Nøgle. | ANTAGET |
| MEDLEMSNR | INTEGER | FK | Til MEDLEMMER. | ANTAGET |
| KLUBNR | INTEGER | FK | Til BRIDGEKLUBBER. | ANTAGET |
| SAESON | VARCHAR | Sæson, fx 2026/27. | ANTAGET | |
| KONTINGENTSTATUS | VARCHAR | Betalt/ikke betalt. | ANTAGET |
BridgeOrg · Handicap
Turneringer der indgår i handicapberegningen.
| Felt | Type | Nøgle | Beskrivelse | Status |
|---|---|---|---|---|
| ID | INTEGER | PK | Nøgle. | ANTAGET |
| KLUBNR | INTEGER | FK | Til BRIDGEKLUBBER. | ANTAGET |
| TURNERINGSNAVN | VARCHAR | Turneringens navn. | ANTAGET | |
| DATO | DATE | Spilledato. | ANTAGET |
Handicapposteringer pr. medlem.
| Felt | Type | Nøgle | Beskrivelse | Status |
|---|---|---|---|---|
| ID | INTEGER | PK | Nøgle. | ANTAGET |
| HACTURNERINGID | INTEGER | FK | Til HACTURNERINGER. | ANTAGET |
| MEDLEMSNR | INTEGER | FK | Til MEDLEMMER. | ANTAGET |
| RESULTAT | NUMERIC | Opnået resultat i procent. | ANTAGET | |
| HCP_FOER | NUMERIC | Handicap før postering. | ANTAGET | |
| HCP_EFTER | NUMERIC | Handicap efter postering. | ANTAGET |
BridgeOrg · Økonomi
Bordafgifter pr. klub og periode.
| Felt | Type | Nøgle | Beskrivelse | Status |
|---|---|---|---|---|
| ID | INTEGER | PK | Nøgle. | ANTAGET |
| KLUBNR | INTEGER | FK | Til BRIDGEKLUBBER. | ANTAGET |
| PERIODE | VARCHAR | Afregningsperiode. | ANTAGET | |
| ANTAL_BORDE | INTEGER | Antal borde i perioden. | ANTAGET | |
| BELOEB | NUMERIC | Beløb i kroner. | ANTAGET |
Hierarki og relationer
Turneringshierarki
Deltagere i sektion
Spil
BridgeOrg
| Fra | Til | Type | Via felt |
|---|---|---|---|
| MAINTOURNAMENT | GROUPTOURNAMENT | 1:N | GROUPTOURNAMENT.MAINTOURNAMENTID |
| GROUPTOURNAMENT | SECTION | 1:N | SECTION.GROUPTOURNAMENTID |
| SECTION | ROUND | 1:N | ROUND.SECTIONID |
| ROUND | ROUNDMATCH | 1:N | ROUNDMATCH.ROUNDID |
| ROUNDMATCH | RESULT | 1:N | RESULT.ROUNDMATCHID |
| SECTION | SECTIONTEAM | 1:N | SECTIONTEAM.SECTIONID |
| SECTIONTEAM | SECTIONPLAYER | 1:N | SECTIONPLAYER.SECTIONTEAMID |
| MEM_MEMBER | SECTIONPLAYER | 1:N | SECTIONPLAYER.MEMBERNO |
| SECTION | BOARDSPEC | 1:N | BOARDSPEC.SECTIONID |
| BOARDSPEC | BOARD | 1:1 | BOARD.BOARDSPECID |
| MEM_CLUB | MEM_MEMBER | 1:N | MEM_MEMBER.CLUBNO |
| MEM_MEMBER | MASTERPOINTS | 1:N | MASTERPOINTS.MEMBERNO |
| BRIDGEKLUBBER | MEDLEMSKABER | 1:N | MEDLEMSKABER.KLUBNR |
| MEDLEMMER | MEDLEMSKABER | 1:N | MEDLEMSKABER.MEDLEMSNR |
| HACTURNERINGER | HACPOSTERINGER | 1:N | HACPOSTERINGER.HACTURNERINGID |
| MEDLEMMER | HACPOSTERINGER | 1:N | HACPOSTERINGER.MEDLEMSNR |
| BRIDGEKLUBBER | BORDAFGIFTER | 1:N | BORDAFGIFTER.KLUBNR |
Skærmfelt → databasefelt
Hver skærm i prototypen er koblet til de tabeller og felter, den skal læse og skrive. Samme mapping vises direkte på skærmene, når udviklertilstand er slået til.
| Skærmfelt | Databasefelt | Status |
|---|---|---|
| Navn | MEDLEMMER.NAVN / MEM_MEMBER.FIRSTNAME + LASTNAME | ANTAGET |
| Medlemsnummer | MEDLEMMER.MEDLEMSNR | ANTAGET |
| MEDLEMMER.EMAIL | ANTAGET | |
| Telefon | MEM_MEMBER.PHONE | ANTAGET |
| Adresse / postnr / by | MEM_MEMBER.ADDRESS, ZIPCODE, CITY | ANTAGET |
| Født | MEM_MEMBER.BIRTHDATE | ANTAGET |
| Kontingent | MEDLEMSKABER.KONTINGENTSTATUS | ANTAGET |
| Klub | MEDLEMSKABER.KLUBNR → BRIDGEKLUBBER.KLUBNAVN | ANTAGET |
| Skærmfelt | Databasefelt | Status |
|---|---|---|
| Aktuelt handicap | MEDLEMMER.HANDICAP | ANTAGET |
| Dato | HACTURNERINGER.DATO | ANTAGET |
| Turnering | HACTURNERINGER.TURNERINGSNAVN | ANTAGET |
| Klub | HACTURNERINGER.KLUBNR → BRIDGEKLUBBER.KLUBNAVN | ANTAGET |
| Resultat | HACPOSTERINGER.RESULTAT | ANTAGET |
| Handicap før / efter | HACPOSTERINGER.HCP_FOER, HCP_EFTER | ANTAGET |
| Skærmfelt | Databasefelt | Status |
|---|---|---|
| Kategori (guld/sølv/bronze) | MASTERPOINTS.CATEGORY | ANTAGET |
| Point | MASTERPOINTS.POINTS | ANTAGET |
| Turnering | MASTERPOINTS.MAINTOURNAMENTID → MAINTOURNAMENT.NAME | ANTAGET |
| Dato | MAINTOURNAMENT.STARTDATE | ANTAGET |
| Skærmfelt | Databasefelt | Status |
|---|---|---|
| Turneringsnavn | MAINTOURNAMENT.NAME | ANTAGET |
| Dato | MAINTOURNAMENT.STARTDATE | ANTAGET |
| Arrangør | MAINTOURNAMENT.CLUBNO → MEM_CLUB.CLUBNAME | ANTAGET |
| Række/gruppe | GROUPTOURNAMENT.NAME | ANTAGET |
| Tilmeldt deltager | SECTIONPLAYER.MEMBERNO, PLAYERNAME | ANTAGET |
| Hold/par | SECTIONTEAM.TEAMNO, TEAMNAME | ANTAGET |
| Skærmfelt | Databasefelt | Status |
|---|---|---|
| Sektion | SECTION.LETTER | ANTAGET |
| Runde | ROUND.ROUNDNO | ANTAGET |
| Bord | ROUNDMATCH.TABLENO | ANTAGET |
| NS / ØV | ROUNDMATCH.NSPAIR, EWPAIR | ANTAGET |
| Spiller | SECTIONPLAYER.PLAYERNAME | ANTAGET |
| Skærmfelt | Databasefelt | Status |
|---|---|---|
| Turnering | MAINTOURNAMENT.NAME | ANTAGET |
| Spilnummer | RESULT.BOARDNO / BOARDSPEC.BOARDNO | ANTAGET |
| Kontrakt | RESULT.CONTRACT | ANTAGET |
| Score | RESULT.SCORE | ANTAGET |
| Procent/point | RESULT.MATCHPOINTS | ANTAGET |
| Fordeling | BOARD.NORTHHAND, EASTHAND, SOUTHHAND, WESTHAND | ANTAGET |
| Skærmfelt | Databasefelt | Status |
|---|---|---|
| Klubnummer | BRIDGEKLUBBER.KLUBNR | ANTAGET |
| Klubnavn | BRIDGEKLUBBER.KLUBNAVN | ANTAGET |
| Distrikt / kreds | BRIDGEKLUBBER.DISTRIKT, KREDS | ANTAGET |
| Antal medlemmer | COUNT(MEDLEMSKABER.MEDLEMSNR) | ANTAGET |
| Skærmfelt | Databasefelt | Status |
|---|---|---|
| Medlemskaber pr. klub | MEDLEMSKABER.KLUBNR, SAESON | ANTAGET |
| Bordafgift | BORDAFGIFTER.ANTAL_BORDE, BELOEB | ANTAGET |
| Periode | BORDAFGIFTER.PERIODE | ANTAGET |