Performance: Primary key behavior
MEDIUM IMPACT
This affects database query speed and page load time by influencing how records are uniquely identified and indexed.
class Product(models.Model): sku = models.CharField(max_length=50, primary_key=True) name = models.CharField(max_length=100)
class Product(models.Model): name = models.CharField(max_length=100) sku = models.CharField(max_length=50, unique=True) # No explicit primary key, default id is used
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Default AutoField primary key | N/A | N/A | N/A | [!] OK |
| Natural key as primary key (e.g., SKU) | N/A | N/A | N/A | [OK] Good |
| Separate UUID unique field with AutoField PK | N/A | N/A | N/A | [X] Bad |
| UUIDField as primary key | N/A | N/A | N/A | [OK] Good |