• No, a "record number" / surrogate key is not necessary in all cases. Adding such a column to every table offers no general advantage in terms of performance. Surrogate keys can have advantages in some situations but certainly not in others.

    What is important is that you model the business domain accurately, i.e. with usable, "natural key" identifiers that implement the business rules your database is intended to satisfy. When you have done that, you are then in a position to evaluate whether you need to create additional keys in some places. Be guided by the criteria of Familiarity, Simplicty and Stability when choosing and designing your keys.