I would use a generated PK myself, just for the reasons you mentioned. Also, indexing and comparing by integer is faster than comparing by strings. You can put a unique index on the name field too without making it a primary key.
More Related Contents:
- Why use multiple columns as primary keys (composite primary key)
- How to design a product table for many kinds of product where each product has many parameters
- What is Normalisation (or Normalization)? [closed]
- What are the best practices for using a GUID as a primary key, specifically regarding performance? [closed]
- Database design – articles, blog posts, photos, stories
- Schema for a multilanguage database
- Can I have multiple primary keys in a single table?
- Calendar Recurring/Repeating Events – Best Storage Method
- How to version control a record in a database [closed]
- designing database to hold different metadata information
- Same data from different entities in Database – Best Practice – Phone numbers example
- Sql – Indirect Foreign Key
- What are the lengths of Location Coordinates, latitude and longitude? [closed]
- Remove Primary Key in MySQL
- How should I implement this schema in MongoDB?
- How do you deal with polymorphism in a database?
- Nullable Foreign Key bad practice?
- How do I design a database to store properties, selecting attributes by synonyms
- Composite primary key or not?
- Can we create multicolumn unique indexes on MS access databases?
- Strings as Primary Keys in MYSQL Database [closed]
- Database design for audit logging [closed]
- Should I use a single or multiple database setup for a multi-client application? [closed]
- Database Design Best Practices [closed]
- Composite PRIMARY KEY enforces NOT NULL constraints on involved columns
- A column as primary key or two foreign keys as primary key
- Bill of materials database model
- How to choose the clustered index in SQL Server?
- What are design patterns to support custom fields in an application?
- mongodb schema design for blogs