Ответ
INCLUDE и EXTEND — это термины из UML, но в контексте БД их можно рассмотреть как способы связи сущностей.
INCLUDE (включение) — жесткая связь, где дочерняя сущность не может существовать без родительской (например, Order и OrderItem). В SQL это реализуется через внешний ключ с ON DELETE CASCADE.
EXTEND (расширение) — более гибкая связь, где сущность может существовать независимо, но дополняет другую (например, User и UserProfile). В SQL это тоже внешний ключ, но без каскадного удаления.
Пример с INCLUDE:
CREATE TABLE Orders (
order_id INT PRIMARY KEY
);
CREATE TABLE OrderItems (
item_id INT PRIMARY KEY,
order_id INT,
FOREIGN KEY (order_id) REFERENCES Orders(order_id) ON DELETE CASCADE
);
Пример с EXTEND:
CREATE TABLE Users (
user_id INT PRIMARY KEY
);
CREATE TABLE UserProfiles (
profile_id INT PRIMARY KEY,
user_id INT UNIQUE,
FOREIGN KEY (user_id) REFERENCES Users(user_id)
);