coderpp Posted July 27, 2010 Report Share Posted July 27, 2010 (edited) Jāizveido sistēma, ar vairāk lietotāju piekļuvi. Vieni var rediģēt saturu, bet tas neparādās publiski. Tad ir augstākstāvoši lietotāji, kuri šīs izmaiņas apskatot/piekoriģējot var tās publicēt lapā. Kā pareizi veidot datubāzi šadai sistēmai? Vienkāršākais laikam taisīt divas vienādas tabulas, ar dažādiem nosaukumiem. Viena priekš rediģēšanas, otra tikai gatava materiāla glabāšanai priekš publiskās lapas. Vai šāds varinats ir normāls? Vai arī ir kādi labāki risinājumi šādai situācijai. Edited July 27, 2010 by coderpp Link to comment Share on other sites More sharing options...
Grey_Wolf Posted July 27, 2010 Report Share Posted July 27, 2010 Vienkāršākais laikam taisīt divas vienādas tabulas, ar dažādiem nosaukumiem. Viena priekš rediģēšanas, otra tikai gatava materiāla glabāšanai priekš publiskās lapas. Vai šāds varinats ir normāls? Nee, shads varjants ir Nenormals!!! Vai smadzenju nav??? kapec neizveidot papildus lauku, kur noraadi Public/redige/archive ? Link to comment Share on other sites More sharing options...
coderpp Posted July 27, 2010 Author Report Share Posted July 27, 2010 Neuztraucies, man ar smadzenēm viss kārtībā. Es jau ar par tādu variantu esmu iedomājies. Bet ar ko tad īsti atšķirsies? Pirmajā gadījumā 2 tabulas, Otrajā viena tabula, bet informācija 2x vienā tabulā. Ideja ir tāda. Pimēram ir sadaļa noteikumi, kura jau ir publicēta, bet sistēmā to ir iespējams rediģēt, bet izmaiņas nedrīkst uzreiz parādīties publiski. Tās vispirms apskatīs un tad pārbulicēs augstākstāvoš lietotājs. Tātad šajā situācijā jebkurā gadījumā visam saturam jābūt divās kopijās, viena publiskā, kuri redz lapas apmeklētāji, otra ar kuru var strādāt cms lietotāji. Cik saprotu tad divas tabulas ar viena veida struktūru nav labi veidot. Bet tas ļautu glabāt atsevišķi publisko informāciju. Mani interesē, kādi varianti vēl varētu būt šādai situācijai. Link to comment Share on other sites More sharing options...
101111 Posted July 27, 2010 Report Share Posted July 27, 2010 Ja tāda ir situācija, tad varētu rakstus glabāt vienā tabulā. Tabulas kolonnas: publiskais teksts, nepubliskais teksts, raksta statuss.. Link to comment Share on other sites More sharing options...
Grey_Wolf Posted July 27, 2010 Report Share Posted July 27, 2010 (edited) Ideja ir tāda. Pimēram ir sadaļa noteikumi, kura jau ir publicēta, bet sistēmā to ir iespējams rediģēt, bet izmaiņas nedrīkst uzreiz parādīties publiski. Tās vispirms apskatīs un tad pārbulicēs augstākstāvoš lietotājs. Tātad šajā situācijā jebkurā gadījumā visam saturam jābūt divās kopijās, viena publiskā, kuri redz lapas apmeklētāji, otra ar kuru var strādāt cms lietotāji. Tas ir kaa? Izdodam aviizi plkst.8:00 pec tam pazinjojam ka taa bija testa versija? Nevajag njemt piemeru no LR valdiibas :( Ja, kautkas ir publicets internetaa -> skaiti ka arii Google jau var paspet savakt kopiju ... -- DB -> tapec ir Datu baze, ka to izmanto normalu datu glabasanai, nevis TEMP datu varjantam ... --- Tavaa gadijumaa uzdevums protams ir debiils, bet nu bez 2 tabulam neiztikt ... Izveido otru identisku tabulu.. tik Ljoti japeseko buus liidzi par ID .. respektiivi ljauj pirmajai tabulai generet too ID ,autoincrament, bet otrai vien laukam uzliec Unikalo vertiibu tas ljaus vinjas daudzmaz sasinhronizeet... EDIT: Ja tāda ir situācija, tad varētu rakstus glabāt vienā tabulā. Tabulas kolonnas: publiskais teksts, nepubliskais teksts, raksta statuss.. un kaa parmetiisi tas kollonas? Edited July 27, 2010 by Grey_Wolf Link to comment Share on other sites More sharing options...
briedis Posted July 27, 2010 Report Share Posted July 27, 2010 (edited) Piem, tev būs scenārijs - tiek pievienots raksts, nav redzams publikai. Tad admin apstiprina, un tad kļūst redzams visiem. ..bet tad tiek veiktas izmaiņas - vecā raksta versija joprojām ir redzama visiem, bet jaunās izmaiņas vēl nav apstiprinātas. Kad jaunās izmaiņas apstiprina, tad vecais raksts tiek aizstāts ar jauno? EDIT: Manuprāt, nevajag divas identiskas tabulas. Var otru tabulu, kam būt tie paši lauki, kas mainās - virsraksts, teksts, un publiskā raksta ID (pēc kura nosakam, ka šis raksts ir DRAFTS orģinālajam). Tad kad admins šo apstiprina, tad publisko rakstu tabulas lauku vērtības tiek aizstātas ar šī drafta lauku vērtībām. Šitā imo arī varētu konktrolēt raksta versijas. Pie katras saglabāšanas pievienojas jauns ieraksts, un var izvēlēties, kuru uzstādīt kā publisko... Edited July 27, 2010 by briedis Link to comment Share on other sites More sharing options...
coderpp Posted July 27, 2010 Author Report Share Posted July 27, 2010 Ja tāda ir situācija, tad varētu rakstus glabāt vienā tabulā. Tabulas kolonnas: publiskais teksts, nepubliskais teksts, raksta statuss.. Paldies, tik tālu nebiju aizdomājies. Domāju ka šis būs labākais variants. Būs arī vieglāk parādīt atbilstošajam lietotājam vai izmaiņas ir veiktas. Link to comment Share on other sites More sharing options...
Grey_Wolf Posted July 27, 2010 Report Share Posted July 27, 2010 Paldies, tik tālu nebiju aizdomājies. Domāju ka šis būs labākais variants. Būs arī vieglāk parādīt atbilstošajam lietotājam vai izmaiņas ir veiktas. nepareizi ... Buus gruutak uztaisiit lai raadas PAREIZAIS varjants... -- Link to comment Share on other sites More sharing options...
coderpp Posted July 27, 2010 Author Report Share Posted July 27, 2010 Piem, tev būs scenārijs - tiek pievienots raksts, nav redzams publikai. Tad admin apstiprina, un tad kļūst redzams visiem. ..bet tad tiek veiktas izmaiņas - vecā raksta versija joprojām ir redzama visiem, bet jaunās izmaiņas vēl nav apstiprinātas. Kad jaunās izmaiņas apstiprina, tad vecais raksts tiek aizstāts ar jauno? Jā tieši tāda arī ir tā prasība un man nekas cits neatliek kā to darīt. Link to comment Share on other sites More sharing options...
coderpp Posted July 27, 2010 Author Report Share Posted July 27, 2010 nepareizi ... Buus gruutak uztaisiit lai raadas PAREIZAIS varjants... -- Kāpēc? Ir texts publiskajā laukā un rediģēšanas laukā. Ja saturs vienāds, nekas ar to sadaļu/rakstu nav darīts. Ja nav vienādi, tad parādam kādu paziņojumu, kad tur veiktas izmaiņas. Admins to redzot, apskatās publicē vai arī nepublicē. Pareizais variants vienmēr skaitās tas, kurš ir bijis publicēts neatkarīgi no tā vai tur veiks vai neveiks izmaiņas. Link to comment Share on other sites More sharing options...
codez Posted July 27, 2010 Report Share Posted July 27, 2010 Universāls variants būtu 2 tabulas: 1)pages: id | revision_id 2)revisions: id | text | page_id | date | user_created Sākumā izveido lapu, dabū raksta id un kamēr nav revīziju revision_id = 0 1 | 0 Kad saglabā pirmo versiju tik izveidots ieraksts tabulā revisions: 1 | sveiki | 1 | 2010-07-27 20:00 | dzonis Tad cits lietotājs veic uzlabojumus 1 revizījai, tiek izveidots jauns ieraksts 2 | sveiki visiem | 1 | 2010-07-27 20:10 | peteris Atnāk admins un apstiprina ierakstu pages tabulā rakstam viens norādot, kura revīzija ir publiskā: 1 | 2 Tādā veidā būs iespējams atcelt citu lietotāju izmaiņas cik vien tālu vēlies un uzlikt tīkamāko no revīzijām. Ja revīziju daudzums ir problēma, tad var glabāt tikai pēdējās 10 revīzijas un lapai piesaistīto revīziju. Link to comment Share on other sites More sharing options...
coderpp Posted July 27, 2010 Author Report Share Posted July 27, 2010 Tātad pie katras izmaiņas jauns ieraksts revizijā. Kā darīt ar tiem, kas veic izmaiņas? Rādīt tikai jaunāko revīziju, vai arī visas? Adminam ta skaidrs, vinam jāredz visas. Link to comment Share on other sites More sharing options...
codez Posted July 27, 2010 Report Share Posted July 27, 2010 Nu tas jau kā tas ir realitātē vajadzīgs organizēt. Ja vienam lietotājam jāvar papildināt citu revizijas, tad var rāadīt, piemēram citu lietotāju pēdējās revizījas, vai vienkārši pēdējās revīzijas vai arī visas. Ir arī gatavi tūļi, kuri māk sa-merge-ot kopā divas dažādas teksta failu revīzijas. Piemēram ir revīzija 1: <h1>hello</h1><b>hi</b> <i>bye</i> 1.Lietotājs izveido revīziju 2: <h1>hello</h1>dzonis te bija <b>hi</b> <i>bye</i> 2. lietotājs izveido revīziju 3: <h1>hello</h1><b>hi</b> peteris te bija <i>bye</i> un tad 2. lietotājs redz, ka 1. lietotājs ir arī sarakstījis kautko un vaic 2. un 3. revīzijas merdžošanu, kā rezultātā iegūst revīziju 4.: <h1>hello</h1>dzonis te bija <b>hi</b> peteris te bija <i>bye</i> Bet nu ši risinājums jau šķiet velk uz pārkrutumu. Link to comment Share on other sites More sharing options...
coderpp Posted July 27, 2010 Author Report Share Posted July 27, 2010 Paldies. Link to comment Share on other sites More sharing options...
Recommended Posts