Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Подскажите по логике в таблицах
 
 автор: Logos   (13.12.2011 в 16:37)   письмо автору
 
 

Добрый день! Подозреваю, на очень хороший форум я наткнулся в инете. Смотрю - всем отвечают, надеюсь и мне ответят.
В общем, встала передо мной задача столкнутся нос к носу со связкой Mysql+PHP
В связи с этим, возникла необходимость написать веб-приложение, логика работы которого мне устно понятна, а как перенести её в mysql не могу сообразить.
В общем, есть менеджер который ведет базу данных по рекламным щитам (грубо говоря занято-незанято) экселевский файл с такими полями как:
имя, номер, сторона, адрес, январь, февраль, март и т.п. - по мере течения времени он их редактирует самостоятельно (январь переминовывает на апрель и так далее)
Также, у него есть и табличка с клиентами, где есть имя клиента, какой щит он арендует, зарезервировал ли он следующий щит и т.п.

Вот не могу понять я только, каким образом эти данные можно перенести в таблицы mysql?
Пусть я создам таблицу "щиты" с аналогичными полями. Январь,Февраль,Март могут иметь значения - занято, свободно, в резерве. Планирую потом в веб-интерфейсе возможность изменения итих полей.
Хочу чтобы какая-то связь была, чтобы если определенный щит занят, была бы логичная запись в таблице с клиентами, что такой-то такой то клиент арендовал этот щит, до такого-то числа...
Кто-нибудь может на пальцах объяснить, как это логически делается? толи мой мозг не в ту сторону направлен, толи как обычно небольшой затуп тормозит всю работу: (
Заранее, спасибо, я верю в то, что на таком чотком простом форуме сидят знающие и не ленящиеся люди, которым невзападло помочь ищащему человеку.

  Ответить  
 
 автор: cheops   (13.12.2011 в 18:09)   письмо автору
 
   для: Logos   (13.12.2011 в 16:37)
 

Тут вот какая штука, а вам архив нужен? Т.е. в 2003 году этот щит занимала фирма такая-то такая-то, они как раз там напротив расположены, а у нас этот щит сейчас пустует - не послать ли им коммерческое предложение... дальше больше задача автоматизируется... Или просто есть щиты и их статусы - нужно, чтобы в каждый момент времени было известно: свободно/занято, сколько денег.

PS Сложность еще в том, что Excel можно использовать как источник данных, но не как образец для подражания - он из-за визуального режима заточен строго под одну таблицу, а хорошую базу данных стараются разбить на множество таблиц, ну упрощенно говоря фирмы хранятся в одной таблице, щиты в другой, тарифы - в третьей, а текущее состояние щитов и за кем они закреплены - в четвертой. При этом каждой строке присваивается уникальный номер - первичный ключ, а когда нужно связать две таблицы, то в другой таблице вместо дублирования информации (название фирмы) просто указывается этот первичный ключ (по которому в таблице фирм его можно найти). Так как ключи - целые числа, то все работает очень шустро и дублирования информации нет, если есть название фирмы, оно в базе в единственном месте - исправил, везде поправилось. Т.е. вам сейчас нужно разбить одну Excel-таблицу на множество связанных SQL-таблиц.

>Заранее, спасибо, я верю в то, что на таком чотком простом форуме сидят знающие и не
>ленящиеся люди, которым невзападло помочь ищащему человеку.
Собственно форум 7 лет назад организовывался, как раз для того, чтобы было место где можно спокойно поговорить, без разгребаний завалов из фекалий, которых на интернет-форумах всегда с избытком :))) Тут модераторы стараются резать любые попытки перейти на личности или попытки вести разговор в режиме "сам дурак!". Поэтому остается говорить только по делу или молчать :)))

  Ответить  
 
 автор: Logos   (14.12.2011 в 11:37)   письмо автору
 
   для: cheops   (13.12.2011 в 18:09)
 

Архив тоже нужен, но это будущий вопрос. Сейчас мне надо организовать работу менеджера с такой таблицей: http://www.im23.ru/1.xls
Клиентов она заносит в ручную в таблицу http://www.im23.ru/2.xlsx
В идеале, я хочу написать веб-приложение для автоматизации её работы и лёгких выборок данных.

В простейшем варианте создаю 3 таблицы:
Щиты - поля id_щита, имя_щита
Клиенты - id_клиента, имя_клиента
Заказы - id_щита, id_клиента, дата_заказа.

Вывожу таблицу щиты на экран, хочу добавить заказ на конкретный щит. Надо выбрать из таблицы Щиты номер щита, из таблицы Клиенты номер клиента и добавить дату заказа? Правильно? Как оформить примерно запрос? Что-то я не могу понять простую логику работы с этими таблицами, блин. Столько всего перечитал, а понять не могу. Может есть ссылки на ресурсы доступные для понимания? Заранее, спасибо.

  Ответить  
 
 автор: cheops   (14.12.2011 в 14:02)   письмо автору
 
   для: Logos   (14.12.2011 в 11:37)
 

>хочу добавить заказ на конкретный щит.
Т.е. речь идет о HTML-форме (или все-таки о списке)? Тогда при формировании просто делайте два запроса, один к таблице клиентов, а другой к таблице шитов, выводите их в выпадающих списках, используя ключи в качестве value.
Или методика добавления заказа у вас другая?

  Ответить  
 
 автор: Logos   (14.12.2011 в 14:07)   письмо автору
 
   для: cheops   (14.12.2011 в 14:02)
 

я решил сначала сделать автономные html-формы, как это будет выглядеть, и только потом буду привязку делать к базе данных. Правильно, это так делается? а то на словах описать логику хранения данных без форм очень тяжело

  Ответить  
 
 автор: cheops   (14.12.2011 в 14:21)   письмо автору
 
   для: Logos   (14.12.2011 в 14:07)
 

По разному делают, можно и так (более того, нужно, по уму действительно нужно прототипы строить). Вообще движетесь в правильном направлении, по поводу запросов - у вас будет две ситуации, либо отдельные запросы к разным таблицам, которые связываются логикой приложения, либо многотабличный запрос, который обращается сразу к нескольким таблицам. Если последнии будут вызывать сложности, публикуйте задачу сюда, только со структурой таблиц, которую можно получить при помощи оператора SHOW CREATE TABLE - всегда поможем, а пару запрос увидите и сами по аналогии их быстро будете создавать.

  Ответить  
 
 автор: Valick   (13.12.2011 в 20:52)   письмо автору
 
   для: Logos   (13.12.2011 в 16:37)
 

Пусть я создам таблицу "щиты" с аналогичными полями. Январь,Февраль,Март могут иметь значения - занято, свободно, в резерве.
Подозреваю что вы не знакомы с принципами построения баз данных
Для начала погуглите на предмет нормализации таблиц и нормализации бд
и еще такой момент
РНР и РНР+MySQL это по сути два разных языка программирования
___
в одном вы не правы... это не просто хороший форум, это самый лучший форум, это всем форумам форум :)
вэлкам ту пати))

  Ответить  
 
 автор: сотка   (14.12.2011 в 20:50)   письмо автору
 
   для: Valick   (13.12.2011 в 20:52)
 

это точно! единственный форум который действительно помогает учиться! форум который не ''спит'' !

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования