Alnis Posted June 18, 2008 Report Posted June 18, 2008 Vēlos uztasīt datubāzi, kurā lietotāji caur webu varētu labot datus, ievadīt jaunus, dzēst vai tikai skatīties. Jautājums ir vairāk saistīts, kā organizēt datu piekļuves tiesības Piemēram ir viena tabula ar lietotājiem tb_lietotaji: Id| name 1| juris 2| saša ir otra tabula ar tiesību veidiem- tb_tiesibas: id|name 1| skatīties 2| rediģēt 3| veidot jaunu ir trešā tabula, teiksim, tb_preces id| preces name 1| spainis 2| alus 3| skaidas tad ir ceturtā tabula – tiesības_tb id| table_name |user_id| tiesibas_id 1| tb_preces | 1| 1 2| tb_preces | 1| 2 3| tb_preces | 1| 2 4| tb_preces | 2| 1 tātād juris tabulā “tb_tiesības” varēs veikt pilnīgi visu, bet saša tikai skatīties? Caur admin paneli, adminam būs tiesības ir pa laikam teiksmim jurim nonemt rediģēšanas tiesības, bet sašam iedot utt. Tagad tauta padalās ar advancētākiem risinājumiem, jo tādu tabulu kā tb_preces man būs daudz.
Delfins Posted June 18, 2008 Report Posted June 18, 2008 (edited) Advancētāks ir vēl - sadalīt pa laukiem + izpildīt konkrētu f-ju formā (pavisam cits mappings) Jo bieži vajag - labot, bet ne visu - tikai daļu lauku. Veikt konkrētu f-ju (apstiprināt, izrakstīt rēķinu, bet ne dzēst un pievienot). Formas nesastāv tikai no laukiem :) Tiesības iedalīt grupas... vēlāk grupām pielikt jūzerus un kešot mappingu. SysSecurableObjects: {ObjectId, Name, Description, Type[Form,Table,Field,Action]} SysUserGroupSecurity: {ObjectId,UserGroupId,Access [int]} // attiecīgam objekta tipa būs savs kombo/radio selekti SysUserSecurity: {UserId, ObjectId, Access} // kešotā tabula - updeitojās pie grupas pielikšanas lietotājam vai gruaps tiesību maiņas SysSecurableObjects {1, ManaForma, "bla bla bla super forma", Form} SysUserGroupSecurity {1, 1, 1} // 0 - no access, 1 - view, 2 - edit (0/1/2 der fieldiem un formām); tabulām - view/edit/add/delete; actioniem - jā/nē(izpildīt) Edited June 18, 2008 by Delfins
Alnis Posted June 18, 2008 Author Report Posted June 18, 2008 Advancētāks ir vēl - sadalīt pa laukiem + izpildīt konkrētu f-ju formā (pavisam cits mappings)Jo bieži vajag - labot, bet ne visu - tikai daļu lauku. Veikt konkrētu f-ju (apstiprināt, izrakstīt rēķinu, bet ne dzēst un pievienot). Formas nesastāv tikai no laukiem :) tipa tabula id| tabula_name| tabula_colon_name| user_id| tiesiba_id ? kas ir mappings?
Delfins Posted June 18, 2008 Report Posted June 18, 2008 kas ir mappings? `advancētais relation` ;) [pēc semantikas/biznesloģikas]
Alnis Posted June 18, 2008 Author Report Posted June 18, 2008 SysSecurableObjects: {ObjectId, Name, Description, Type[Form,Table,Field,Action]} vot šito es nesapratu, kur man lv.php.net jāskatās/jāmeklē par šo lietu? tā tak nav paša veidota f-ja kad kols starp nosaukumu un { ?
Delfins Posted June 18, 2008 Report Posted June 18, 2008 Vēl iekš SysSecurableObjects var pielikt lauku `ParentObjectId`, kas norādītu inheritanci - tabulām, lai varētu atselektēt visus fieldus vienā reizē un salikt masīvā - formām, lai būtu konkrētam action-am konkrētajā formā (jo poga `Delete` būs vairākos :)) PS: minētā shēma man ir uztaisīta un darbojās nevainojama. Tev atliek uzrakst'ti mazu Form-ģenerētāju, lai katru reizi nerakstītu permisiju kodu ;)
Delfins Posted June 18, 2008 Report Posted June 18, 2008 vot šito es nesapratu doh.. tā ir tābulas definīcija :D bet var būt arī masīvs/objekts...
Delfins Posted June 18, 2008 Report Posted June 18, 2008 http://php.lv/f/index.php?s=&showtopic...ost&p=68725
Alnis Posted June 19, 2008 Author Report Posted June 19, 2008 doh.. tā ir tābulas definīcija :D bet var būt arī masīvs/objekts... tabulas definīcija? tas ir kautkas no OOP? sorry par stulbiem jautājumiem, bet pilnīgi acīs cērtās gribot uzzināt kaut ko sīkāk :)
bubu Posted June 19, 2008 Report Posted June 19, 2008 Nav nekas no OOP. MySQL pamati. http://dev.mysql.com/doc/refman/5.1/en/create-table.html
Alnis Posted June 20, 2008 Author Report Posted June 20, 2008 ok, pamati, ja kāds būtu uzreiz pateicis, ka tās ir tabulas ar kolonnu nosaukumiem, tad būtu sapratis :)
Recommended Posts