• I think Hugo said it best many pages ago, but it bears repeating. For every table in which you use a surrogate key, you should also have at least one additional unique constraint. Without it, users can create row upon row of duplicate data except for the surrogate key (I've seen it too many times). This is probably the most common mistake made by new database developers. Using a surrogate key does not obviate the need for another key that enforces uniqueness comprised of user viewable values since we never show the surrogate to the user.