естественный ключ против суррогатного ключа внешний ключ innodb

Вопрос:

У меня есть 2 таблицы:

Product
id INT
name VARCHAR(64)
something TEXT
else INT
entirely BOOL

и

Ingredient
id INT
name VARCHAR(64)
description TEXT

Теперь у меня также есть таблица ссылок

Products_Ingredients
product_id INT
ingredient_id INT

для моего отношения «многие ко многим».

Теперь и продукты, и ингредиенты будут иметь уникальные названия. Итак, я могу использовать имена как естественные ключи ... но будет ли это хорошей идеей?

Допустим, у меня есть продукт: Paint Thinner Supreme с ингредиентом: Butylonitrotetrocycline

Будет ли хорошей идеей использовать эти названия в качестве составного ключа в таблице ссылок ?

Насколько я понимаю идею использования естественных ключей вместо суррогатов, я не могу перестать думать, что использование простых целых чисел в качестве первичных ключей (и внешних) будет намного быстрее. Будет ли разница в том, как сервер MySQL переваривает эти разные ключи?

Каково ваше мнение?

12
задан RandomWhiteTrash 1 November 2011 в 19:11
поделиться