Определить модель продукта с проверкой уникального кода

Задайте уникальное ограничение на артикул в базе данных. Проверка существования перед вставкой полезна для интерфейса, но не защищает от конкурентных запросов.

Короткий ответ

Что ответить на собеседовании

Задайте уникальное ограничение на артикул в базе данных. Проверка существования перед вставкой полезна для интерфейса, но не защищает от конкурентных запросов.

Подробный разбор

Ответ с пояснениями

Условие

Создайте модель продукта, включающую поля: артикул (уникальный идентификатор), название и стоимость. Реализуйте механизм, который гарантирует, что значение артикулa не повторяется в системе.

Ответ

Задайте уникальное ограничение на артикул в базе данных. Проверка существования перед вставкой полезна для интерфейса, но не защищает от конкурентных запросов.

Например, модель Django:

from django.db import models

class Product(models.Model):
    sku = models.CharField(max_length=64, unique=True)
    name = models.CharField(max_length=255)
    price = models.DecimalField(max_digits=12, decimal_places=2)

После миграции БД отклонит повторный артикул даже при одновременном создании двух товаров. IntegrityError перехватывают снаружи блока transaction.atomic, переводя конфликт в понятную ошибку API. Не следует превращать любую ошибку целостности в «артикул занят» без проверки причины.

Отдельно определите правила регистра, пробелов и нормализации артикула. Если abc и ABC считаются одним кодом, обычной регистрозависимой уникальности недостаточно.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее