2009-12-04 2 views
0

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

Ниже приведены таблицы 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

Если бы вы могли дать немного больше описания что касается ваших целей с этими таблицами, которые действительно помогут нам в предоставлении решения. – user103219

+0

В основном таблицы предназначены для тегов, в которые пользователи вводят ответы на вопросы, а затем отображают их все для каждого отдельного вопроса, размещенного как-то здесь, на SO – tor

ответ

0

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

EDIT:

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, это имеет значение)

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