Объясните пожалуйста!!!! Добрые люди объясните пожалуйста следующее...Есть БД приведенная к 3 нормальной форме в ней связаны две таблицы:table1(id,name), table2(id,time,cost,color).Каким образом будут добавляться данные из одной таблицы excel (имя время цена цвет) такой например. саша 17:34 10 зеленый в эту базу данных, состоящую их двух таблиц...Просто объясните, как быть в таком случае, или здесь вообще другой подход, очень нужно разобраться помогите...
Добрые люди объясните пожалуйста следующее...Есть БД приведенная к 3 нормальной форме в ней связаны две таблицы:table1(id,name), table2(id,time,cost,color).Каким образом будут добавляться данные из одной таблицы excel (имя время цена цвет) такой например. саша 17:34 10 зеленый в эту базу данных, состоящую их двух таблиц...Просто объясните, как быть в таком случае, или здесь вообще другой подход, очень нужно разобраться помогите...
смысла не вижу, все ровно в table2 поле с name_id придется добавлять (если конечно id ни есть это самое поле)
Я извиняюсь, конечно Код (Text): name_id должно быть (поспешил)...так вот при такой структуре таблиц Код (Text): table1(id, name) table2(id, name_id, time, cost, color) какова будет процедура добавление данных в базу из одной таблицы Excel?Просто объясните сам механизм добавления записей из одной таблицы в две...
Создаёшь пустой массив, допустим $names Читаешь таблицу строку за строкой. Смотришь на поле name из этой строки. Проверяешь, есть ли в массиве элемент $names с таким индексом. Если нет - добавляешь запись в таблицу names, получаешь последний сгенерированный id, записываешь в массив $names информацию - name такой-то соответствует id такой-то. Если есть - просто берёшь id, соответствующий данному name. И вставляешь остальные данные, включая этот полученные name_id во вторую таблицую Переходишь к следующей строке. Добавлено спустя 49 секунд: Проверяешь, есть ли в массиве $names элемент с таким индексом. Добавлено спустя 51 секунду: полученный
имени, не три , их большое количество, их 3 разновидности, и чтобы не писать каждый раз полное имя ,которое будет повторяться, я нормализовал базу, чтобы во вторую таблицу записывать в поле name_id id соответствующего имени из первой таблицы. Можно объяснить подробней, если возможно, какой нибудь легкий примерчик, как осуществлять проверку соответствия имени , находящегося в массиве, который получился, путем считывания строки из таблицы excel. Имени из первой таблицы базы. И записи во вторую таблицу соответствующего id имени. Или хотябы подскажите, где достать материал, по такой проблеме.
ну я просто так выразился...Саша, Петя, Маша. Но записей в базе много, и эти имена будут повторятся в БД, нужно вместо того , чтобы писать полностью эти имена, использовать просто их id, что снизит общий размер базы.(задача устранения избыточности )
блин!!! объясняю для тех кто в танке что смысла в этом нет!!! так как количество записей это не сокращает
да, но это сокращает размер каждой записи, писать целое имя состоящее из 4 символов или писать id где 1 символ
тогда есть вариант проще чем описал sobachnik, вам он подойдет вбиваете в table1 имена руками 1 вася 2 петя 3 маша и читаете с экселя по строке (допустим в массив $data), далее проверка: if($data['name']=="вася") $name_id=1; elseif($data['name']=="петя") $name_id=2; elseif($data['name']=="маша") $name_id=3; после подстовляете $name_id в запрос
записей будет около 1000 это на что- то повлияет?в данном примере будет регистрозависимость?и в какой кодировке тогда лучше хранить записи в базе
как там яднекс пишет? оптимизировали пере оптимизировали да не пере оптимизировали тут значит нормализировали пере нормализировали да не пере нормализировали
Re: Объясните пожалуйста!!!! Пример подхода, который был использован Вами. И, собственно, в чем сложность?
Re: Объясните пожалуйста!!!! транзакции и вставляешь в обе таблицы. смысл какой было разбивать не повторяющиеся данные на две таблицы?
для нормализации, имена людей повторяются, прочитайте маленькую статью, я же все правильно понял?http://webadequate.ru/rabota-s-bd-mysql/15-normalizaciya-obektov-v-mysql.html также можно немножко про транзакции...я с этим не сталкивался вообще.
при чем тут повторяются имена людей или нет. =) У вас есть клиент допустим. У него есть имя, фамилия. То, что у людей имена повторяются, еще не значит, что надо так извращаться =) Это если я про имена правильно понял. Ибо если это именно что конкретные люди-клиенты допустим, то да, их надо хранить в отдельной таблице, а еще лучше БД