On Mon, 24 Aug 2015 09:15:27 -0400, Ray Cote <rgacote@appropriatesolutions.com> wrote:
Point 9 is well-intentioned, but perhaps needs to be clarified/rephrased: Developers should not be creating production-grade tables devoid of well-defined business keys, period. That would be regardless of whether they're used as de facto primary keys or simply as unique keys.
As long as that is made clear as a foundational requirement, then developers should be allowed some leeway as to the subsequent design choice between synthetic vs natural keys. Further to the above remarks, offering some guidelines on the trade-offs would be beneficial. E.g., if natural keys are chosen as Primary, it's likely that cascading mechanisms ought to be implemented. Conversely, if synthetic keys are chosen as Primary, they must be accompanied by a legitimate Unique natural key.
- John