pomoc s navrhom DB

Sekcia: Programovanie 26.01.2016 | 19:02
Avatar miiisa   Používateľ

Nazdar, potreboval by som trosku pomoct s navrhom DB.

1. mam uzivatelov ktori mozu byt bud ucitel alebo student,(neskor administrator,ale v tom nevidim az taky problem).

2. ucitel aj student maju profil ---> moze to byt riesene ako atribut v tabulke ucitel/student ?

3. ucitel aj ziak mozu dat clanok. Student moze oznacit ucitela, teda v clanku ktory by pridal by sa objavil aj ucitelovi na nastenke(ze je napr o danom ucitelovi.). Ucitel tuto moznost nema.

4. Ziak moze komentovat clanky ucitelovi, U itel moze komentovat iba clanky ktore su o nom!

5. taktiez neviem ako riesit situaciu,ak napr. bude chciet dat ziak clanok na ucitela/ov ktori nie su zaregistrovani. Daky postup ako by som to mohol ulozit v DB a nasledne ked sa ucitel zaregistruje mu to vedel aj priradit.

pokusil som sa nieco spravit, nepodarilo sa mi prepojit logiku toho,ze clanok je od ziaka a moze byt v nom ucitel. vedeli by ste niekto helfnut ? za kazdu radu budem nesmierne vdacny.

    • RE: pomoc s navrhom DB 26.01.2016 | 20:38
      Avatar Andrej Lacho Debian, CentOS ...  Administrátor

      ak dobre chápem tak skus moodle.

      • RE: pomoc s navrhom DB 26.01.2016 | 22:18
        Avatar miiisa   Používateľ

        ahoj, mam zaujem o vlastne riesenie... chcem sa nieco naucit,dozvediet,vyskusat... pokorit latku :)

    • RE: pomoc s navrhom DB 26.01.2016 | 21:45
      Avatar LUcoRP Debian, *Ubuntu, Android  Administrátor
      • Moze byt k jednemu clanku priradenych viacero ucitelov?
      • Neregistrovanych ucitelov mas znamych podla jedinecneho udaju?
      • Co bude moct robit administrator?
      • Clanky ktore uz videl ucitel chces z jeho dashboardu skryvat?
      • Co ked pribudne novy komentar ku clanku?
      git blame | Muj Desvorc je vetsi nez tvuj!
      • RE: pomoc s navrhom DB 26.01.2016 | 22:24
        Avatar miiisa   Používateľ

        nazdar!

        Moze byt k jednemu clanku priradenych viacero ucitelov?
        nie
        Neregistrovanych ucitelov mas znamych podla jedinecneho udaju?
        ano
        Co bude moct robit administrator?
        vsetko. editovat, mazat,menit.
        Clanky ktore uz videl ucitel chces z jeho dashboardu skryvat?
        to je snad jedno,ci ? to uz by bol len jeden atribut v tabulke,ci ?
        Co ked pribudne novy komentar ku clanku?
        to by som riesil notifikaciou(email), neviem presne este ako. Ale asi by stacil daky atribut v db.

        • RE: pomoc s navrhom DB 26.01.2016 | 22:30
          Avatar miiisa   Používateľ

          este by som dodal:
          Neregistrovanych ucitelov mas znamych podla jedinecneho udaju?
          poznam ich, ale ten zoznam sa moze aktualizovat,takze by asi bolo vhodne tam mat moznost pridania, s tym ,ze by neskorsie doslo k verifikacii.

          • RE: pomoc s navrhom DB 26.01.2016 | 23:29
            Avatar LUcoRP Debian, *Ubuntu, Android  Administrátor

            Hadam som na nic nezabudol a budes sa v tom vyznat. V tomto modeli je zakladnou tabulkou, od ktorej sa odvijaju ostatne, tabulka so zakladnymi datami uzivatela.  Znamy, neregistrovany uzivatel moze mat tym padom vyplnene ID a ext_ID (co je jedinecna identifikacia uzivatela z externeho zdroja, napr. zamestnanecke cislo/whatever)

            Na nu je priamo napojena tabulka so sparovanim na ID uzivatela z prvej tabulky a jednotlivymi vlastnostami a ich hodnotami. Takyto model ma vyhodu v tom, ze mozes pridavat relativne velke mnozstvo roznych vlastnosti, bez ovplyvnenia struktury tabulky. Ako bonus je jednoduche naplnenie vlastnosti uzivatela do objektu v skripte.

            Dalsou tabulkou je tabulka s clankami, ktora je naparovana na primarnu tabulku hned dvomi klucmi, ID autora clanku a ID napojeneho ucitela.

            Poslednou je tabulka s komentami, ktora je jednym klucom prepojena na uzivatela co koment vytvoril a druhym klucom na clanok ku ktoremu patri. Parent_ID je ID rodicovskeho komentu, na ktory dany koment reaguje (nepises ci to chces mat takto).

            Je to iba hruby navrh, da sa tam vymaznat este napr. s datovymi typmi atd. 

            Zvysne poziadavky co si mal sa riesia uz v samotnom skripte.

            git blame | Muj Desvorc je vetsi nez tvuj!
            • RE: pomoc s navrhom DB 27.01.2016 | 21:37
              Avatar miiisa   Používateľ

              Nazdar, dakujem ti velmi pekne.

              1)Users_advanced tabulka sluzi na rozlisenie uzivatelov ci sa jedna o ucitela alebo ziaka ?
              este v tej 2)istej tabulke ID, potrebujem ho? nestacilo by mi len Users_ID FK? moc nevidim vyznam.

              btw, v com si to kreslil? :))

              • RE: pomoc s navrhom DB 28.01.2016 | 11:00
                Avatar LUcoRP Debian, *Ubuntu, Android  Administrátor

                ahoj,

                1, users_advanced sluzi na ukladanie pokrocilych dat uzivatelov ako titul, adresa a pod. Na rozlisenie typu uzivatela (ziak, ucitel,...) sluzi Users->User_type

                2, ID v tabulke Users_advanced sluzi na ulozenie hodnoty primary key, Users_ID je v tomto pripade foreign key z tabulky Users, ktory je namapovany ako referencia k vlastnostiam toho-ktoreho uzivatela, kedze vlastnosti bude mat uzivatel viac, tak nemoze Users_ID sluzit ako primary key pre tabulku (co by aj tak nemal, kedze je to foreign key). Ak tam velmi nechces mat ID, tak si mozes hodit primary key na kombinaciu Users_ID a Property PRIMARY KEY (Users_ID, Property) https://en.wikipedia.org/wiki/Compound_key

                Na nete je hafo nastrojov v ktorych si mozes namodelovat strukturu databazy. Na tento navrh som pouzil vertabelo.com

                git blame | Muj Desvorc je vetsi nez tvuj!
                • RE: pomoc s navrhom DB 30.01.2016 | 11:53
                  Avatar miiisa   Používateľ

                  dakujem :)