2013-11-02 3 views
1

Я знаю, что первичный ключ должен быть уникальным, но нормально ли, чтобы первичный ключ был равен другому столбцу в одной таблице по совпадению?Может ли первичный ключ быть равным другому столбцу?

Например, у меня есть 2 стола. Одна таблица называется лицом, которое содержит информацию о человеке (ID, адрес электронной почты, телефон, адрес, имя). Другая таблица - это персонал (ID, идентификатор пользователя (идентификатор человека), зарплата, должность). В штате столбец идентификатора является первичным ключом и используется для уникальной идентификации сотрудника. Число от 1 до 100. Однако идентификатор пользователя (идентификатор человека) может быть равен ID. Например, идентификатор персонала может быть 1, а идентификатор PID, на который он ссылается, может быть равен 1.

Это нормально?

ответ

3

Задача первичного ключа - однозначно и надежно идентифицировать каждую строку - поэтому она должна быть уникальной и NOT NULL - все остальное не имеет значения.

Если у вас только второй столбец с одинаковыми значениями - мне бы хотелось , почему это так, но это никоим образом не влияет на первичный ключ отрицательно.

1

Да. В таблице нет проверки отношений между разными столбцами.

Ограничение, о котором вы беспокоитесь, даже не имеет смысла. Предположим, у вас был стол для лиц с колонками ID, name и year_of_birth. Это не позволит тому, кто родился в 1975 году, иметь ID = 1975.

1

Первичный ключ таблицы должен быть уникальным и не нулевым. Нет ограничений на уникальность между таблицами. Это на 100% зависит от вас.

Смежные вопросы