Да, у каждой таблицы должен быть первичный ключ.
Да, вы должны создать суррогатный ключ. Также известен как поле pk с автоинкрементом.
Вы также должны сделать «Друг» FK для этого поля автоинкремента.
Если вы думаете, что в будущем собираетесь «перепроверять», возможно, вы захотите изучить использование естественных ключей, которые являются полями, которые естественным образом идентифицируют ваши данные. Ключом к этому является то, что при кодировании всегда используются естественные идентификаторы, а затем вы создаете уникальные индексы для этих естественных ключей. В будущем, если вам придется повторно ввести ключ, вы можете это сделать, потому что ваш UX гарантирует, что ваши данные непротиворечивы.
Я бы сделал это только в том случае, если вам это абсолютно необходимо, поскольку это увеличивает сложность вашего кода и модели данных.