Recommended procedure, IMO. You can control access to underlying data more easily. One might call it encapsulation, in fact... [/me invokes the wrath of the Tablenator ;-)]

Having a database that has effective stored procedures helps, though.