Вопрос базы данных PHP / MySQL?

0

У меня вопрос. Я пытаюсь, чтобы столбец q_id принимал значение столбца id при отправке тега. Я пытаюсь сделать это с помощью PHP, но я думал, должен ли я просто добавить AUTO INCREMENT в столбец q_id, поскольку таблицы обновляются, когда тег отправлен. или это неправильный способ сделать это или есть лучший способ сделать это?

Ниже приведены таблицы MySQL.

CREATE TABLE q_tags (
q_id INT UNSIGNED NOT NULL,
users_q_id INT UNSIGNED NOT NULL
);

CREATE TABLE tags (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
tag VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);  
  • 0
    Если бы вы могли дать немного больше описания того, каковы ваши цели с этими таблицами, это действительно помогло бы нам предоставить решение.
  • 0
    В основном таблицы предназначены для тегов, которые пользователи вводят для своих вопросов, а затем отображают их все для каждого отдельного вопроса, размещенного примерно так, как здесь, на SO
Теги:

1 ответ

0
Лучший ответ

AUTO INCREMENT используется главным образом, чтобы не добавлять один и тот же идентификатор в таблицу, чтобы вы могли сохранить лояльный индекс. Я предлагаю вам добавить первичный ключ к q_tags и изменить текущий q_id на внешний ключ, чтобы он мог стать ссылкой на таблицу тэгов.

ИЗМЕНИТЬ:

CREATE TABLE q_tags (
q_id INT UNSIGNED NOT NULL AUTO_INCREMENT,
t_id INT UNSIGNED NOT NULL,
users_q_id INT UNSIGNED NOT NULL,
PRIMARY KEY (q_id)
);

CREATE TABLE tags (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
tag VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);

t_id в первой таблице - "внешний ключ". Вы можете добавить его в качестве реального внешнего ключа mysql или просто сохранить его таким образом (если вы планируете использовать теги "cascade delete" и связанные с t_tags, это имеет значение)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню