Some good points below. But lets clearly delineate the requirement responsibilities.

Many business cases are addressed by "dating" data elements. Price is a good example, but it could be anything (I did applications that had "text explanations/rules" that could change on a monthly basis). One advantage of dating is it allows "future" entries - aka setting up for a discount month, or new instructions, etc. The downside, of course, is code becomes a little more complicated since it has to include dates when doing other functions. To the user, the requirement (better phrased as "expectation") is the system properly pulls together data for a given instant in time, for the desired presentation, calculation, etc.

For logging, the domain of business requirements are accountability, trouble-shooting, legal, etc. And while logging naturally gives a "date" on a record, log data should not be viewed as a "system-function" facilitator. The expectation and domain of the logging function is not the same as the expectation of date-impacted business data. Mixing the two concepts into a single "code function/base" is a recipe for disaster (in my opinion).

Thus, when my applications required logging, I definitely used "triggers", usually storing to an additional table with identical structure but with an added date-time field. The "business" data tables that had date-valued information are handled with the usual code approach (e.g. classes, stored procedures, etc). Also note, if the Database logging feature set or plugins did not use the extra table(s) approach (aka backup table-per-table), I would definitely implement my own. From my experience, it is simple to implement, little code, and yields quite elegant and extensible foundations for any "log" related business case that might arise.

HTH,
-Charlie


On 4/23/2019 8:46 AM, Frank Cazabon wrote:
In my experience the date of the price change is important. So I maintain a table with the price and a date. Invariably someone makes a mistake and puts the wrong date in so they need to go back and change it. In the scenario you seem to be not letting the user put the correct date but are just storing the date/time that they actually make the change. This may work in your situation, but in mine it won't as they may make the change today, but the price change won't actually come into effect until tomorrow.

But if it really is an audit trail you are wanting then yes, use triggers to record the changes and don't let users edit the audit data.

Frank.

Frank Cazabon

On 22/04/2019 10:38 PM, MB Software Solutions, LLC wrote:
On 4/22/2019 6:13 PM, Frank Cazabon wrote:
Yeah, my succinct point :) was I didn't think it should be a log but a table that allows edits. You can then put an audit trail on that if you want or need.


Would it be just another update?  Yeah, kind of a wasted row but still, why break process?


---
This email has been checked for viruses by Avast antivirus software.
https://www.avast.com/antivirus


[excessive quoting removed by server]

_______________________________________________
Post Messages to: [email protected]
Subscription Maintenance: http://mail.leafe.com/mailman/listinfo/profox
OT-free version of this list: http://mail.leafe.com/mailman/listinfo/profoxtech
Searchable Archive: http://leafe.com/archives/search/profox
This message: 
http://leafe.com/archives/byMID/profox/[email protected]
** All postings, unless explicitly stated otherwise, are the opinions of the 
author, and do not constitute legal or medical advice. This statement is added 
to the messages for those lawyers who are too stupid to see the obvious.

Reply via email to