Предположим, что у меня есть таблица со следующими столбцами:Внешний ключ - идентификатор или просто UNIQUE столбец
CREATE TABLE users
{
id INTEGER PRIMARY KEY,
login VARCHAR(50) UNIQUE,
password VARCHAR(50)
}
И мне нужно, чтобы создать таблицу, которая будет хранить одно печенье для каждой учетной записи. Что лучше - создать внешний ключ, который ссылается на login
колонки из первой таблицы
CREATE TABLE cookies
{
id INTEGER PRIMARY KEY,
cookie VARCHAR(50),
login VARCHAR(50) FOREIGN KEY REFERENCES users(login)
}
или создать внешний ключ, который ссылается на id
колонки?
CREATE TABLE cookies
{
id INTEGER PRIMARY KEY,
cookie VARCHAR(50),
expires DATETIME,
id_user INTEGER FOREIGN KEY REFERENCES users(id)
}
И почему?
Я предпочитаю соответствовать FK пользователей (id), что наилучшим образом. – Chandru
Какова цель столбца cookie? Это столбец или несколько столбцов в таблице cookie? Это одна строка в таблице cookie для пользователя? Или может быть несколько? Что делать, если вы добавили этот столбец в таблицу пользователей напрямую? –
Если память обслуживает, по крайней мере, в sql-сервере, вы должны использовать первичный ключ, по крайней мере, с одной стороны ограничения внешнего ключа (в одной-на одной стороне должны быть первичный ключ) –