Třídní chat


Workspace



      

Popis

Na této stránce si můžeme vyzkoušet, jak fungují systémy, které pracují se sdílenou databází běžící v cloudu (na serveru). Naše aplikace představuje třídní chatovací místnost. V pravé části vidíte, jak by se chat zobrazoval na webové stránce. Ale v této části není možné do chatu přidat zprávu ani není možné zprávu ohodnotit. Obyčejně by pod seznamem zpráv bylo textové pole a tlačítko pro vložení zprávy. Po kliku na ikonu liku, by se počet liků zvednul o jeden. Tyto funkcionality zapomněli programátoři doprogramovat, ale nám to nevadí, protože máme možnost databázi ovládat ručně přes SQL a DML. Tyto příkazy jsme schopni volat v levé části okna. Databázové schéma vypadá následovně.

Databázové schéma

Schéma je velice jednoduché. V tabulce uzivatel se ukládají uživatelé systému. Tabulka zprava se napojuje na uživatele (autora příspěvku) přes cizí klíc ve sloupečku uzivatel_id. Každá zpráva má svůj text a datum, kdy byla vytvořena. Dále máme seznam typů reakcí, které můžeme k příspěvku přidat - tabulka typ_reakce. A poslední tabulka reakce je vazební tabulka mezi ostatními tabulkami a eviduje, který uživatel na kterou zprávu jak reagoval.

uzivatel
id
jmeno
zprava
id
uzivatel_id
text
datum
reakce
zprava_id
uzivatel_id
typ_reakce_id
typ_reakce
id
typ

Zadání

Pomocí DML se pokuste do chatu vložit příspěvek a přidat reakci na cizí příspěvky.

Poznámka 1: Občas se vám může stát, že před vámi vloží záznam do tabulky se stejným ID jako jste měli v plánu vy. V takovém případě vám DB nedovolí záznam uložit a budete si muset zjistit, jaké je maximální ID v tabulce a to pak zvednout o jedna. Nebo můžete při vkládání sloupeček ID úplně vynechat a databáze do jeho hodnoty dosadí automaticky nejnižší možnou hodnotu, která se v tabulce ještě nevyskytuje.
Poznámka 2: Do této doby jsme nepracovali s datovým typem datum. Pro naše účely bude stačit, když ho do databáze budete vkládat do tabulky zprava jako řetězec ve formátu ukázaný následujícím příkladem '2023-03-26 14:09:29'.
  1. Nejdříve si založte vlastního uživatele přidáním záznamu do tabulky uzivatel.

  2. Pak pod tímto uživatelem založte zprávu vložením záznamu do tabulky zprava.

  3. Pomocí tlačítka obnovit v pravé horní části okna se přesvědčte, že se zpráva do DB uložila správně a všichni účastníci chatu ji mohou vidět.

  4. Pak si z nějakých zpráv od svých spolužáků vyberte tu, která se vám nejvíce líbí (nelíbí) a tu pomocí vložení záznamu do tabulky reakce ohodnoťte. Pozor: každý uživatel může ohodnotit každou zprávu pouze jednou. Jak je tato podmínka zajištěna?

  5. Můžete také zkoušet reakce a zprávy smazat, ale buďte ohleduplní. Všechna data sdílíte se svými spolužáky.

  6. Nyní zkuste napsat dotaz tak, aby se tabulka zobrazovala se stejnými daty, jak je vidět v pravé části obrazovky - samozřejmě bez obrázků reakcí - budou stačit pouze počty.

Zobrazení

ID Datum Autor Zpráva Akce