Какое поле выбирать для первичного ключа?

Во время объявления ключа первичного (PK) таблицы (p.e. ПОЛЬЗОВАТЕЛЬ), есть несколько выборов:

  • Возможно размещать существующее поле (username) как первичный ключ (натуральный ключ), так имя пользователя будет санкционировано для того, чтобы нет никакого другого равного. Например:

    CREATE TABLE usuarios(
      username VARCHAR(30) not null;
      password VARCHAR(30) not null;
      tipo_u   VARCHAR(10) null;
    
      PRIMARY KEY(username)
    ) ENGINE INNODB
    
  • Возможно добавлять новое поле (iduser) как первичный ключ (замененный ключ), возможно увеличительный автомобиль, если он желается. Например:

    CREATE TABLE usuarios(
      iduser   INT not null AUTO_INCREMENT;
      username VARCHAR(30) not null;
      password VARCHAR(30) not null;
      tipo_u   VARCHAR(10) null;
    
      PRIMARY KEY(iduser)
    ) ENGINE INNODB
    

Какая-то из двух более рекомендуемая? Который из двух способов позволяет лучшее функционирование в базе данных? Какие преимущества приносит каждый метод?

Он безопаснее используя iduser? Утилита мне в действительности не кажется много, но если я увидел, что много сайтов это используют так.

14
задан 08.07.2017, 17:55
0 ответов