Я создаю систему друзей для своего сайта. Я собираюсь сделать только 2 строки, добавить индекс для каждого из них и сделать их внешними ключами в таблице users
id
. Я бы хотел, чтобы они были удалены, если один из пользователей удален. Затем будет запись для каждого пользователя.mysql friend system, index, foreign key, prim key
user_id
friend_id
Вопрос: Видите ли вы какой-либо причине на все, чтобы включать в себя первичный ключ?
Вопрос: будут ли внешние клавиши работать, как описано выше, при настройке их на каскад?
Если у вас есть какие-либо другие советы или колонки предложения, я хотел бы услышать, что тоже ((мне не нужно знать, когда дружба началась)
Thankyou
Хороший ответ. Но у меня возникли проблемы с пониманием того, каким будет использование, если бы я добавил столбец с именем id, который был первичным ключом, когда я никогда не буду искать таблицу из этого идентификатора. Как это могло бы улучшить производительность? У меня есть указатель на user_id, который я бы «ссылался» на предложение where моего оператора select. Не то, чтобы у меня была проблема с добавлением id, я просто хотел бы понять, почему. – jah
@JensAhlstenHerlevsen Я не предлагаю добавить столбцы первичного ключа автоинкремента. Я специально упомянул составной первичный ключ, используя эти два столбца. Вы можете применять уникальность в паре, и вы всегда смотрите 'user_id', и это первый столбец в индексе, вам не нужен отдельный индекс для user_id сам по себе. У вас всегда должно быть что-то среднее на каждом столе. –
Друзья ALTER TABLE ADD PRIMARY KEY (user_id, friend_id); Это также означает, что комбинация из двух столбцов будет уникальной? – jah