Для чего нужен Foreign key

«Для чего нужен Foreign key» — вопрос из категории Базы данных, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Foreign key (внешний ключ) в SQLite обеспечивает связь между таблицами, гарантируя целостность данных. Он указывает, что значение в столбце одной таблицы должно соответствовать значению первичного ключа (Primary key) в другой таблице.

Пример:

CREATE TABLE Orders (
    order_id INTEGER PRIMARY KEY,
    customer_id INTEGER,
    FOREIGN KEY (customer_id) REFERENCES Customers(customer_id)
);

Здесь customer_id в таблице Orders ссылается на customer_id в таблице Customers. Это предотвращает добавление заказов с несуществующими клиентами.

Плюсы:

  • Поддержка ссылочной целостности
  • Автоматическая проверка связей
  • Каскадное удаление/обновление (если настроено)

В Android Room используйте аннотацию @ForeignKey в @Entity.