2010-05-11 4 views
0

Я довольно новыми для создания сайтов с PHP и MySQL, но я пытаюсь добиться следующего:Добавьте несколько полей в базе данных MySQL

Во время онлайн-процесса регистрации, промотор может зарегистрировать до 20 «бойцов» для медицинского тестирования. Информация каждого истребителя хранится в SESSION как $ _SESSION ['FnumAttr'], где num - это число, а атрибут Attr - это атрибут (имя, фамилия и т. Д.). По завершении регистрации мне нужно, чтобы все данные были введены в базу данных MySQL и в конечном итоге отправлены в другом месте. Менеджер может зачислять от 1 до 20 истребителей одновременно, а любая вещь менее 20 будет просто не иметь данных (нуль) в своей ячейке.

В настоящее время я строил базу данных в MySQL, но если мне нужно ввести 20 атрибутов для 20 разных бойцов, это может занять весь день (не говоря уже о вызове «INSERT INTO», который мне придется сделать в конце все это).

Есть ли способ создать эти поля быстрее, чем идти по строкам и добавить: F4_Firstname, введите текст, длину, разрешите null и т. Д.?

+0

Возможно, это факт, что я провел весь день, но я не совсем понимаю, что вы делаете. Может быть, если вы разместили свою схему базы данных? –

+0

@Manos - У меня нет схемы БД, я пытаюсь построить базу данных по мере того, как мы говорим, и она будет просто хранить информацию о потребителях в одной таблице, определенной как «тест». В этой таблице будет размещено более 400 полей, которые будут содержать подробную информацию о каждый из которых зарегистрирован в системе. Подумайте об этом как о форме регистрации для вашего футбольного лагеря для детей, и вы должны ввести свое имя, адрес, город, штат, почтовый индекс и т. Д. - все это хранится в той же таблице под названием «Зарегистрированные футболисты» – JM4

ответ

1

Это похоже на отношения «один ко многим». Вместо того, чтобы иметь 20 столбцов, создайте новую таблицу под названием «бойцы», которая содержит идентификатор бойца, parent_table_id и информацию об истребителе.

Когда вам нужна информация об истребителе, вы присоединяетесь к таблице истребителей с родительской таблицей на parent_table_id.

Чтобы загрузить эту новую таблицу, просто пройдите через исходный массив и введите инструкцию insert для любых записей, которые вы найдете не равными нулю. Если вы сделаете PK новой таблицы конкатенацией между fighter_id и parent_table_id, вы можете использовать «num» из ваших входных данных непосредственно как fighter_id.

+0

Я не конечно, я следую логике здесь. Какая информация затем содержится в родительской таблице, которая делает таблицу «fighers» другой? У DB как есть будет более 400 столбцов (потому что F1FirstName, F19FederationNumber уникальны). Я не буду тянуть эту информацию так же сильно, как важность простое ее хранение. Я только пытаюсь выяснить, как копировать имена столбцов в быстрой последовательности без ввода всего дня – JM4

+0

Нельзя копировать имена столбцов. Вам нужно прочитать о нормализации реляционных схем. – duffymo

+0

@duffymo - Спасибо за предложение. Я подумал, что я немного привык к нормализации и рассмотрел следующее (http://dev.mysql.com/tech-resources/articles/intro-to-normalization.html), но не вижу, как это применимо на примере, который у меня есть данный. Единственное отношение - это истребитель для менеджера, но эта информация почти не имеет значения для меня до тех пор, пока в процессе. В любом случае, я должен хранить все бойцы в базе данных, что приведет к нескольким сотням столбцов, нет? Я ранее не упоминал, но истребитель также может зарегистрироваться и, следовательно, не будет иметь «родителя». – JM4

0

Вы можете использовать phpMyAdmin

+0

Я уже использовал phpMyAdmin - теперь перешли на Navicat, потому что он намного быстрее, но все равно займет у меня час или больше, чтобы ввести 400+ полей в базу данных. – JM4

+0

Должны ли все данные быть значимыми? – kamasheto

+0

не могли бы вы уточнить - я не уверен, что вы просите. Если данные введены на сайт, это имеет смысл для нас, да. Мы не можем определить, будет ли менеджер регистрировать 3 или 19 своих бойцов/сотрудников, поэтому нам нужно построить БД с более чем 400 полями, чтобы собрать всю возможную информацию и сохранить ее в уникальных полях, потому что эта информация затем передается в другом месте – JM4

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