Когда мы проектируем реляционную базу данных, то должны во-первых руководствоваться правилами нормализации БД, о чем я уже писал в двух статьях немного выше. Нормализация БД - наш главный брат и помощник, а она ведет к разделению одной огромной таблицы 100x1 000 000 на несколько небольших, представляющих отдельные сущности: заказ, клиент, товар, поставщик и так далее. И встает вопрос: как-то же надо их связать воедино, чтобы они работали как один механизм, а транзакции выполняли все требования ACID, о котором я писал в предыдущем посте. И тут нам на помощь приходят ключи. Первое правило ключей - то, что они уникальны внутри всей таблицы. Например, ставить ключем в таблице клиентов имя - очень плохая затея, так как тезок в одном только городе может быть сколь угодно много. Поэтому очень часто в качестве ключа используют просто порядковый номер, обычно его называют id или idСущность (idClient или client_id, как тебе больше нравится). Но бывают истории, когда одного ключа не достаточно, н