Database Design Objectives

Jun 10, 2008 at 10:39 PM
Our goals with the design of the database are: 1. Flexibility, 2. Security, and 3. Performance.
There are often tradeoffs between these objectives.  It is important to understand the competing considerations on each side of the tradeoff, when there is one.
As an example, we will be using some GUIDs as primary keys.  While this will almost certainly impact performance somewhat, it will greatly increase flexibility in the design.  The tables that will heavily use GUIDs are not in the source code releases yet, but we will point out these cases when they come.  We are using the NEWSEQUENTIALID() function to provide default values for the GUIDS.  This will help alleviate some of the performance issues with GUIDs, hopefully.