Следующие два определения внешнего ключа address
эквивалентны?Я имею в виду, имеют ли они одинаковые эффективные элементы базы данных (индекс, ограничения и т. д.).Я предпочитаю последнее, потому что это сокращенное и меньше набирать.
Здесь индекс адреса и ограничение создаются явно:
CREATE TABLE customer (
customer_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
first_name VARCHAR(45) NOT NULL,
last_name VARCHAR(45) NOT NULL,
PRIMARY KEY (customer_id),
KEY idx_fk_address_id (address_id),
CONSTRAINT fk_customer_address FOREIGN KEY (address_id) REFERENCES address (address_id) ON DELETE RESTRICT ON UPDATE CASCADE
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
Здесь также создаются ограничение и индекс?
CREATE TABLE customer (
customer_id SMALLINT UNSIGNED NOT NULL AUTO_INCREMENT,
first_name VARCHAR(45) NOT NULL,
last_name VARCHAR(45) NOT NULL,
PRIMARY KEY (customer_id),
FOREIGN KEY (address_id) REFERENCES address (address_id) ON DELETE RESTRICT ON UPDATE CASCADE
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
Есть ли другие отличия, о которых следует знать?