в общем, должна ли каждая таблица в базе данных иметь поле идентификатора для использования в качестве PK?
Это выглядит как дубликат, даже когда я его спрашиваю, но я искал и не нашел его. Это кажется хорошим вопросом для SO - хотя я уверен, что смогу найти его во многих блогах и т. Д. ТАК будет больше споров, чем вы можете получить в блоге.
У меня проблема с объединением: я получаю слишком много записей. Я думаю об этом как о "расширении". Я добавил таблицу к набору объединений, и число строк увеличилось слишком сильно. Обычно, когда это происходит, я добавляю выбор всех полей идентификаторов, которые участвуют в объединении. Таким образом, довольно очевидно, где происходит расширение, и я могу изменить ON объединения, чтобы исправить это. За исключением этого случая, таблица, которую я добавил, не имеет поля идентификатора. Для меня это проблема. Но, возможно, я ошибаюсь.
Вопрос: должна ли каждая таблица в базе данных иметь поле IDENTITY, которое используется в качестве PK? Есть ли недостатки наличия поля идентификатора в каждой таблице? Что если вы достаточно уверены, что эта таблица никогда не будет использоваться в отношениях PK / FK?
Связанные, но не дубликаты:Когда наличие столбца идентификаторов не является хорошей идеей?
Видимо эта дискуссия былапроисходит некоторое время, Должно быть известно.
Эта почта (суррогат против природных ключей) также имеет значение.