Встречается на собеседованиях • сегодня
Работал ли с базами, в которых было много натуральных ключей
Да, работал. Натуральные ключи (естественные идентификаторы, например, email или ИНН) могут быть удобны, но имеют недостатки:
- Изменяемость: если ключ изменится (например, email), придётся обновлять все связанные таблицы.
- Производительность: строковые ключи (VARCHAR) работают медленнее, чем числовые (BIGINT).
- Уникальность: сложнее гарантировать уникальность, особенно в распределённых системах.
Пример с SQL:
sql
-- Плохо: email как первичный ключ
CREATE TABLE users (
email VARCHAR(255) PRIMARY KEY,
name VARCHAR(100)
);
-- Лучше: суррогатный ключ + уникальное ограничение
CREATE TABLE users (
id BIGINT AUTO_INCREMENT PRIMARY KEY,
email VARCHAR(255) UNIQUE,
name VARCHAR(100)
);В Java (JPA/Hibernate):
java
@Entity
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(unique = true)
private String email;
}Рекомендую использовать суррогатные ключи (ID) + уникальные индексы на натуральные поля.

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы