Nejste přihlášen(a)
Zdravim…
DibiTable je uzasny. Ale nejak mi vyvstala potreba mit DibiView. Preci jen kdyz mam v DB pohled tak do nej nejde vkladat a spol. Proto bych navrhoval ponechat metody insert, update, delete v DibiTable ktery bude potomkem DibiView, kde bude vse co je ted v DibiTable bez insert, update, delete.
Snad je to pochopitelne. Principielne se nic nezmeni, jen pujde vytvorit obsluhu DB tabulky jen s pravy pro cteni;)
Co myslite?
Já na to, že obsluhu práv k databázi rád přenechám obsluze práv v databázi. Při pokusu o zápis do pohledu dostanu od MySQL hlášku DibiException s hláškou „The target table test_view of the INSERT is not insertable-into“, což mi přijde popisnější než MemberAccessException s „Call to undefined method TestView::insert()“.
Online
DibiTable musis mit co tabulka to objekt. A prijde mi nesmysl aby u objektu, ktery obsluhuje pohled byly metody na upravy. To co rikas ty je pro pripad kdy mas 1 univerzalni obsluhu vseho (to nemusis pouzivat DibiTable)
View nemusí být nutně jen pro čtení, záleží na konkrétní databázi (klíčové slovo: updatable views). Tudíž bych zpracování a případnou chybovou hlášku nechal na driveru.
Další věc je, jestli by bylo praktické mít read-only přepínač u DibiTable. Taková logická obdoba toho, jestli otevřeme soubor pro čtení nebo i zápis. Nevím – žádá si to praxe?
Uznavam, ze nejake views jdou editovat, ale uz jsem se potkal s tim, ze jsem potreboval jen read-only. Jako upravovaci metody navic nevadi, ale dle meho nazoru by DibiView davalo vetsi moznosti a volnost ohledne vytvareni obsluh DB.
Prepinacem bych to neresil. To je stejny jako kdyz DB vrati error o neplatnosti operace.