Sobes.tech
Назад к вопросам
Junior — Middle
126

Можешь объяснить, что подразумевается под понятием 'сущность' в контексте базы данных или объектно-ориентированного программирования?

Компании, где спрашивали
AndersenAndersen

Ответ от нейросети

sobes.tech AI

Что хотят услышать интервьюеры:

Сущность — это отдельный объект предметной области, который имеет собственную идентичность и отличается от других объектов даже при совпадении части данных. В базе данных это обычно запись с уникальным ключом, в ООП — объект или класс, представляющий реальную бизнес-сущность. Важно показать понимание, что сущность — это не просто набор полей, а носитель смысла и жизненного цикла.

Определение:

Сущность — это элемент модели, который можно однозначно идентифицировать и который имеет значение в рамках предметной области.
В БД сущность обычно соответствует таблице, а отдельный экземпляр — строке с уникальным идентификатором.
В ООП сущность часто моделируется классом и его объектами, где ключевым является не только состояние, но и идентичность объекта.

Пример использования:

Например, в приложении для доставки сущностью может быть Order — заказ. У двух заказов могут совпадать сумма, адрес и статус, но это всё равно разные сущности, если у них разные id.

class Order {
  final String id;
  final double total;
  final String status;

  Order({
    required this.id,
    required this.total,
    required this.status,
  });
}

Здесь id позволяет отличать один заказ от другого, даже если остальные поля одинаковые.

Пояснение кода:

  • Order — модель сущности заказа.
  • id — уникальный идентификатор, который задаёт идентичность сущности.
  • total и status — свойства, описывающие текущее состояние заказа.
  • Два объекта Order с одинаковыми total и status, но разными id, считаются разными сущностями.

Ключевые моменты:

  • Сущность — это объект с собственной идентичностью, а не просто набор данных.
  • В базе данных сущности обычно соответствуют таблицам и строкам с первичным ключом.
  • В ООП сущность моделируется классом/объектом, который важно сравнивать по идентификатору.
  • Сущность может изменять состояние, но оставаться той же самой по смыслу.
  • Не стоит путать сущность с DTO или просто структурой данных без идентичности.