When I was a junior programmer I was encouraged to make applications "table-driven" as much as possible. What my project managers meant by this was to resist placing data values in program source code, and instead to have them in database tables. This made the applications more flexible. For instance, some source code might implement a business rule for calculating taxes on retail sales using a tax rate of three percent. If three percent was implemented directly in the source code, then if the rate changed to four percent, all the source code using three percent would have to be found. The programs concerned would have to be changed, and the new programs would have to be implemented in production. By contrast having the three percent in a database table that was accessed by the appropriate business rules meant that there was only one, known place where the data item needed to be changed. The flexibility of the table-driven approach supported ease of production maintenance, rather than anything else. However, it did mean that the defined components of a single business rule were found in more than one place.

Nobody that I know of was thinking about business rules in the late 1970s when I started programming. Yet, I did find that the table-driven approach evolved to become more sophisticated than simple placing known data values outside of program source code. A variant of it consisted of triggering particular pieces of source code based on data values in records being processed. This meant that programs could be written that included a large set of rules. For instance, a program to calculate gross payroll would have one set of rules for a married person and a different set of rules for a single person. The appropriate rules would be triggered by the code for marital status on the person record. In other words, it was possible to write business rules for many different scenarios and trigger the appropriate ones on demand.

Register or login for access to this item and much more

All Information Management content is archived after seven days.

Community members receive:
  • All recent and archived articles
  • Conference offers and updates
  • A full menu of enewsletter options
  • Web seminars, white papers, ebooks

Don't have an account? Register for Free Unlimited Access