Don't expose your PKs
So you have a second, opaque unique identifier for the frontend to fetch? At that point why not just use a single column (UUID)?
This was hard enough to enforce when it was just people writing code, and once one of those stupid incrementing integer IDs go in a public API or important codepath, it can be a real pain to rip out.
So you have a second, opaque unique identifier for the frontend to fetch? At that point why not just use a single column (UUID)?