HACKER Q&A
📣 viviansolide

Should IDs be strings or numbers in your codebase?


At work we're debating whether entity IDs should be typed as strings or numbers throughout our stack (API contracts, frontend, etc.).

Database auto-increments happen to be integers, but we never perform arithmetic on IDs – they're opaque identifiers.

My take: IDs are identifiers, not numbers. Typing them as strings makes this explici and makes migrating to UUIDs or other formats painless.

Am I missing a good reason to keep them as numbers?


  👤 Rotundo Accepted Answer ✓
Consider storage requirements. Strings (ASCII? UTF-8?) are not as efficient as integers or UUIDs. You're not storing UUIDs as strings, are you? They are binary, only converted to the string expansion for display and/or export.

👤 jghn
Unless you're doing math with them for some reason, they're strings.