Tietokanta tutuksi

07.07.2023

Tietotokanta on tapa tallentaa tietoa, niin että tiedot liittyvät toisiinsa relaatioilla. Kun tehdään Web-sovellusta, käyttäjän on pystyttävä luomaan itse omat tunnukset palveluun, kirjautumaan sisään omilla tunnuksilla. Sitten käyttäjän on pystyttävä tallentamaan omia suorituksia talteen ja muokkaamaan niitä tarvittaessa. Tietenkin käyttäjän tulee myös pystyä tuhoamaan omia tietojaan, mutta ei muiden tietoja.

Eli tietokantarakenteen täytyy huomioida paljon erilaisia tietoja, käyttäjätiedot, sovellustiedot yms.

Ensin tietysti kannattaa piirtää kuva tietokannasta.

Sitten kuva täytyy saattaa kirjalliseen muotoon.

Eli täytyy luoda tietokannan SCHEMA tiedosto.

(Aikaisemmassa Blog-postissa, on avattu tätä schema tiedosto standardia

https://yogaplannerblog.cms.webnode.fi/l/prisma-ja-postgresql-tietokanta-yhdessa/)

//////////////////////////////////////////////////////
model Person {
PersonId Int @id
PersonName String
NickName String
}
//////////////////////////////////////////////////////
model Exercise {
ExerciseId Int @id
ExerciseName String
Author String
DateCreated String
ExerciseOtherInformation String
Person_PersonId Int
}
//////////////////////////////////////////////////////
model Pose {
PoseId Int @id
PoseName String
PoseCreateDate String
PoseOtherInformation String
}
//////////////////////////////////////////////////////
model Exercise_Posture {
ExercisePoseId Int @id
ExerciseId Int
PoseId Int
}
//////////////////////////////////////////////////////
model Person_Exercise {
PersonId Int @id
ExcerciseId Int
DateUsed String
}
//////////////////////////////////////////////////////
model Phase{
PhaseId Int @id
PhaseName String
}
//////////////////////////////////////////////////////
model Sequence {
SequenceId Int @id
SequenceName String
SequenceDescription String
PhaseId Int
}
//////////////////////////////////////////////////////
model Image {
ImageId Int @id
ImageName String
ImagePath String
ImageType String
ImageColor String
PostureId Int
SequenceId Int
}
//////////////////////////////////////////////////////
model Exercise_has_Sequence {
Excercise_ExcerciseId Int @id
Sequence_SequenceId Int
}
//////////////////////////////////////////////////////
model Sequence_has_Pose {
SequenceId Int @id
PoseId Int
}
//////////////////////////////////////////////////////
model Instruction {
InstructionId Int @id
InstructionTitle String
InstructionText String
ExcerciseId Int
SequenceId Int
PoseId Int
}
//////////////////////////////////////////////////////
model PoseType {
PoseTypeId Int @id
PoseTypeName String
}
//////////////////////////////////////////////////////
model Pose_has_PostureType {
PoseId Int @id
PoseTypeId Int
}
//////////////////////////////////////////////////////
model Excercise_has_Phase {
ExcerciseId Int @id
PhaseId Int
}
//////////////////////////////////////////////////////
model Phase_has_Posture {
PhaseId Int @id
PoseId Int
}
//////////////////////////////////////////////////////

Tämä ei ole ihan vielä lopullinen, tähän täytyy lisätä vielä niitä relaatioita, eli taulujen välisiä riippuvuuksia. (@relation) Jotta saadaan tiedot liittymään toisiinsa, kuvan mukaisesti. Harjoitellaan yhdessä ja muokataan tätä schematiedostoa lähitulevaisuudessa. Amyn videosta saadaan tähän myös apua. Täytyy perehtyä ja opetella, yhdessä.

Scheman avulla (shema.prisma tiedosto) voidaan sitten luoda tietokantarakenne tietokantaan helposti.

("npx prisma migrate dev" komennolla, terminaalissa.)


Antti Tuomola on kirjoittanut omassa blogissaan Prisman käytöstä, avannut tätä aihetta selkeästi:

https://anttituomola.fi/next-js-sovellusdatan-vienti-tietokantaan/


Kannattaa tutustua ja harjoitella, itse omalla koneella Prisman ja PostgreSQLn käyttöä.


Prisma studion avulla (npx prisma studio avaa työkalun selaimeen, localhost:5555 osoitteeseen) on kätevää täyttää tietoa ja testidataa tietokantaan, jotta koodin kehittäminen on mahdollista.

Kun tietokannassa on hiukan testidataa, voidaan kokeilla prisman avulla lukea tietokantaa:

Eli Prisma on javascript kirjasto, jonka avulla, voidaan helpommin käsitellä tietoa tietokannasta onassa Web-sovelluksen Javascript koodissa. Sen avulla on tietokannan käsitteleminen helpompaa, nopeampaa ja turvallisempaa kehittäjälle.


Next.js kehityskehyksen avulla, voidaan kaikki tietokannan käsittely hoitaa Server side komponenteilla. Sitten välittää tietoa käyttäjän selaimelle, jossa tieto esitetään käyttäjälle Client side komponenttien avulla.


Tästä aiheesta on myös paljon lisätietoa youtube:ssa.

Esimerkiksi tässä on alla kerättynä muutamia hyviä videoita aiheesta, joihin kannattaa tutustua.

Luo kotisivut ilmaiseksi! Tämä verkkosivu on luotu Webnodella. Luo oma verkkosivusi ilmaiseksi tänään! Aloita