Crud Matrix

(This is a software design technique not to be confused with a TableBrowser, such as a GUI widget for editing data grids and spreadsheets.)

A CRUD Matrix is a table with tables for columns, and procedures for rows. Each procedure may perform Create, Read, Update, or Delete operations on one or more tables. If one sees too many operations being performed by a single procedure, that procedure is a target for refactoring (though it's normal to have one procedure change multiple tables -- that's typically the point of using them, so the transaction can be done in the procedure).

Ideally, standard CRUD operations should be mostly declarative such that one doesn't have to reinvent the wheel for every entity and have extensive routines for such. In practice, varying amounts of custom "fiddling" is required for specific domain BusinessRules. The trick to a good framework/library is that it automates most of the drudgery without preventing custom behavior or requiring too much copy-and-paste such that one must update multiple spots per change. While CRUD is conceptually fairly simple or familiar on the surface, managing all the different combination of possibilities, exceptions to the rule, and restrictions can be daunting. Related: FunctionallyCompleteCrudGenerator, TheRadBottleneck.

See also CrudLayer, CrudScreen, QueryByExample, IrreducibleComplexityEntityModel


EditText of this page (last edited January 20, 2010) or FindPage with title or text search