Avatar billede Thomasrn Seniormester
08. august 2019 - 21:31 Der er 2 kommentarer

Tabel liga

Hej er i gang med at lave et spille på nettet hvor man skal kunne spille fodbold mod andre.
Vil gerne lave nogle ligaer man kan til melde sig til der skal være 16 hold i hver liga vil bare spørge jer ekspert hvordan i vil lave såen en tabel(database)nemmest skal indholde point mål+/- kampe man har vundet uafgjort og tabte på forhånd tak.
Avatar billede Slettet bruger
09. august 2019 - 07:52 #1
du bør hurtigt læse, og kigge på en fungerende database :)

her er noget:

uid: langt tal (stort), autogereres af databaseprogrammet, så alle spillere er unikke

navn: text (spillerens navn)

liga: integer (et helt tal), tallet skal henvise til en anden tabel, hvor hver liga har sin egen uid (det hedder en relation: spiller x er medlem af liga nr y)

hold: integer (helt tal), nummeret på det hold spilleren er på

DET VAR SPILLEREN


du har meget at lære inden du kan lave det!
find en gratis bog om databaser, eller køb en bog!

en spiller, er medlem af et hold, og er i en liga.
spiller er i en tabel med alle spillere
hodl er i en tabel med alle hold
liga er i en tabel med alle liga

ved at benytte "fremmednøgle", tager man spilleren, og læser hold nr, lad os sige det er hold 5, så går man over i hold tabellen og læser nr 5 - deri kan stå alt om holdet.

sådan skal det laves:

her er der gratis bøger
https://www.pdfdrive.com/database-books.html

men jeg har valgt en for dig
https://www.pdfdrive.com/database-systems-design-implementation-and-management-with-e6663225.html

her nu et eksempel du skal lave for at lære realtion helt grundlæggende:

tabel spiller
uid xxxx
navn: jan
hold: 3
liga: 1
kampe spillet: 2
kampe vundet: 1
kampe tabt: 1
kampe uafgjort: 0

hold: 3 peger altså på id nr 3 i hold tabellen

hold tabellen:
id: 1
navn: FCK
id: 2
navn: OB
id 3:
navn: Brøndby

kan du se det ?
hvis han så skifter hold, skal du skrive nummeret på det hold han er i, i tabellen spiller

hvorfor skal du det, og ikke bare skrive det ved spilleren ?
det skal du for at spare plads, og for at kunne slå ting op i andre tabeller, ellers står det hele i den samme tabel, og så kommer der til at stå FCK 30 gange, det samme sted. derfor :)

I microsoft access vises en relation som en streg der går fra den nøgler der bruges til at slå op med, til det felt i den anden tabel som er den data som nøglen henviser til. så rent grafisk er det til at se sig ud af, men hovedreglen ved oprettelse af tabeller er: hvis noget kommer til at stå flere gange, så skal det over i en tabe lfor sig selv, og kun stå 1 gang, med en nøgle (id) (et tal)

held og lykke
held og lykke
Avatar billede olsensweb.dk Ekspert
10. august 2019 - 07:45 #2
kan en spiller værer på flere hold ?? (har måske forskællige roller, træner/spiller/....)

kan et hold deltage i flere ligaer ?? (FCK deltager de ikke i den danske liga og i premier lige ??)

kamp statestik er det for hold eller for spiller


>en spiller, er medlem af et hold, og er i en liga.
det er vel holdet der er i en liga, spilleren er det kun i kraft af holdet, så holdet er knyttet til en liga, ikke spilleren.


>kampe spillet: 2
>kampe vundet: 1
>kampe tabt: 1
>kampe uafgjort: 0
det er ikke spilleren der vinder/taber en kamp, så det hører ikke til i spiller tabellen
dette kan beregnes ud fra kamp tabellen, så ingen grund til at registrer dette



en hurtig tanke til structur
her kan holdet kun være i en liga, og spilleren (tbl_users), kun være på et hold
CREATE TABLE `tbl_hold` (
  `id` int(11) NOT NULL,
  `name` varchar(255) COLLATE utf8_danish_ci NOT NULL,
  `liga_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;


CREATE TABLE `tbl_kampe` (
  `id` int(11) NOT NULL,
  `hold_id_ud` int(11) NOT NULL,
  `hold_id_hjemme` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;


CREATE TABLE `tbl_liga` (
  `id` int(11) NOT NULL,
  `name` varchar(255) COLLATE utf8_danish_ci NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;


CREATE TABLE `tbl_maal` (
  `id` int(11) NOT NULL,
  `kamp_id` int(11) NOT NULL,
  `hold_id` int(11) NOT NULL,
  `user_id` int(11) NOT NULL,
  `tid` date NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;

CREATE TABLE `tbl_users` (
  `id` int(11) NOT NULL,
  `firstname` varchar(255) COLLATE utf8_danish_ci NOT NULL,
  `lastname` varchar(255) COLLATE utf8_danish_ci NOT NULL,
  `hold_id` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_danish_ci;




men database design kræver man tænker sig godt om!! hvad skal systemet kunne ??, dit design giver dig nogle begrænsninger, specialt hvis du ikke tænker dig godt om.

du bør kigge på Normalisering
https://www.google.com/search?q=database+normalisering


kig på denne søgning, og lad dig inspirarer
https://www.google.com/search?q=er+diagram+football+liga
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester