Справка по настройке базы данных MySQL - PullRequest
1 голос
/ 04 февраля 2010

Я делаю сайт объявлений ... У меня есть эти 6 таблиц: Каждая категория имеет подкатегории (или варианты), которые вы можете увидеть ниже.

Допустим, пользователь хочет опубликовать объявление и ввел всю информацию в необходимые формы, и я нахожусь на этапе, когда мне нужно создать код PHP, чтобы фактически вставить данные в базу данных.

Я думаю что-то вроде этого:

mysql_query("INSERT INTO classifieds (classified_id, ad_id, poster_id, cat_id, area_id, headline, description) VALUES ($classified_id, '$ad_id', $poster_id, $cat_id, $area_id, '$headline', '$description')");

Но я не знаю, где его взять отсюда ... Я думаю, что таблица плакатов не должна быть такой, потому что, как мне определить, какой должен быть poster_id? Или я должен установить его на auto-increment? Помните об этом, постеры могут не входить в систему или что-то в этом роде, поэтому нет проблем с одним человеком, имеющим несколько записей poster_table, если вы знаете, что я имею в виду.

classified_id - это случайное уникальное значение, сгенерированное PHP, поэтому оно всегда уникально.

Пожалуйста, ведите меня! Я не знаю, как правильно связать таблицы.

Если у вас есть Q, дайте мне знать, и я обновлю этот Q!

category table:
cat_id (PK)
cat_name

category_options table:
option_id (PK)
cat_id (FK)
option_name

option_values table:
value_id (PK)
option_id (FK)
value

classifieds table:
classified_id (PK)
ad_id (VARCHAR) something like "Bmw330ci_28238239832" which will appear in URL
poster_id (FK)
cat_id (FK)
area_id (FK)
headline
description
price
etc....

posters table:
poster_id (PK)
name 
email
tel
password

area table:
area_id (PK)
area
community

Ответы [ 2 ]

1 голос
/ 04 февраля 2010

У вас уже есть правильная идея. Когда кто-то создает сообщение и вводит свою личную информацию, ПЕРВЫЙ вставьте запись «постер» в таблицу постеров. Первичным ключом "poster_id" для этой таблицы должно быть поле auto_increment.

Далее, получите идентификатор только что созданного вами постера, используя PHP "mysql_insert_id". Это целочисленное значение будет числом, которое вы указали в поле внешнего ключа poster_id в таблице классификаторов.

0 голосов
/ 04 февраля 2010

Обычно вы должны установить первичный ключ в поле с автоинкрементом.

Если у вас есть связанные таблицы, и вам нужно объединиться по идентификатору, вы можете сначала вставить в основную таблицу, а затем использовать функцию mysql_insert_id , чтобы получить идентификатор только что вставленного элемента. Затем вы можете вставить в другую таблицу, используя это значение в качестве внешнего ключа.

Это очень стандартный способ сделать что-то, поэтому он должен подойти вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...