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

Форум MySQL

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

 

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

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

тема: Сложно задание
 
 автор: ols   (14.10.2008 в 13:18)   письмо автору
 
 

Мне заказали проект от фонда соц. защиты. В БД будет хранится 70 тыс. льготников.
Нужно исключить "двойную продажу" проездных талонов на тролейбус, маршрутное такси.
также отчеты по месяц, по дням по квартлам, по районам.
Не загнется ли БД если в БД будет хранится такое число пользоватлей, плюс еще разные даные, относящиеся к основной таблице где хранятся льготники?
Так примерно я уже представляю как я буду делать, но меня терзает такое огоромное кол-во данных

  Ответить  
 
 автор: cheops   (14.10.2008 в 13:22)   письмо автору
 
   для: ols   (14.10.2008 в 13:18)
 

>Не загнется ли БД если в БД будет хранится такое число пользоватлей, плюс еще разные
>даные, относящиеся к основной таблице где хранятся льготники?
Не загнется - объем более чем адекватный.

  Ответить  
 
 автор: ols   (14.10.2008 в 13:35)   письмо автору
 
   для: cheops   (14.10.2008 в 13:22)
 

А вот в качестве интереса есть таблица users
id|name|....|
В этой таблице хранится 50 тыс. строк

обычный запрос

mysql_query("SELECT * FROM users WHERE name='$name'");

время на выполнение запроса хватит несколько микросекунд?
Я это к тому что стоит ли это делать такой проект средствами php, mysql

  Ответить  
 
 автор: cheops   (14.10.2008 в 15:07)   письмо автору
 
   для: ols   (14.10.2008 в 13:35)
 

Хм... а почему по имени ищите пользователя, а не по номеру? Если это поиск, то почему поиск ведется по точному совпадению, а не при помощи LIKE? Со строками поиск быстро нигде вестись не будет - здесь сложно заранее что-то определенное сказать.

>Я это к тому что стоит ли это делать такой проект средствами php, mysql
А кто будет пользоваться системой и сколько их будет человек?

  Ответить  
 
 автор: ols   (14.10.2008 в 15:48)   письмо автору
 
   для: cheops   (14.10.2008 в 15:07)
 

>Хм... а почему по имени ищите пользователя, а не по номеру? Если это поиск, то почему поиск ведется по точному совпадению, а не при помощи LIKE? Со строками поиск быстро нигде вестись не будет - здесь сложно заранее что-то определенное сказать.
Да я просто ради интереса спросил, а если поиск конечно делать, а так посик по разным критериям нужен.


>>Я это к тому что стоит ли это делать такой проект средствами php, mysql
>А кто будет пользоваться системой и сколько их будет человек?

По городу будет стоять 50 точек где продаются проездные талоны, в каждой точке будет стоять компьютер и доступ в интренет.
Вот мне интересно ваше мнение, по-Вашему Вы бы использовали лучше C++ и например MS SQL Server или Oracle? Ведь задача стоит так чтобы полчить этим точкам доступ к общей БД.

  Ответить  
 
 автор: neo2008   (14.10.2008 в 18:26)   письмо автору
 
   для: ols   (14.10.2008 в 15:48)
 

Все что вы хотите можно реализовать на PHP и MySQL, и оно будет нормально работать...
И не надо тратить денег на платное програмное обеспечение...

  Ответить  
 
 автор: cheops   (17.10.2008 в 11:32)   письмо автору
 
   для: ols   (14.10.2008 в 15:48)
 

Нет, можно и MySQL использовать, только клиент лучше толстый писать на C# и C++. Web-интерфейс удобнее с точки зрения сопровождения, а вот с точки зрения эргономики часто уступает толстому клиенту.

  Ответить  
 
 автор: DEM...   (16.10.2008 в 12:21)
 
   для: cheops   (14.10.2008 в 15:07)
 

Если бы это сообщение написал какой нить новичёк, то я бы подума что он выпенривается :)Как-то странно написано сообщение, будто и не вы писали :)

  Ответить  
 
 автор: cheops   (17.10.2008 в 11:35)   письмо автору
 
   для: DEM...   (16.10.2008 в 12:21)
 

Дело в том, что выбор между толстым и тонким клиентом в таких системах всегда труден. Тонкий клиент заманчив по простоте разработки и сопровождению, однако, если важна скорость - обычно прибегают к толстому клиенту. Мы и так и эдак ПО разрабатывали - где-то достаточно тонкого клиента, где-то приходилось отказываться от Web и разрабатывать толстый клиент. Без подробностей сложно ответить на вопрос достаточно ли будет PHP+MySQL.

  Ответить  
 
 автор: ols   (18.10.2008 в 10:05)   письмо автору
 
   для: cheops   (17.10.2008 в 11:35)
 

А какие именно подробности?
Информация о пользователях (льготников или пенсионеры) хранится вдвух таблицах
users (хранятся паспортные данные) и spravka ( в ней хранятся удостоверительные данные льготника)
В общем принцип такой.
В таблице users есть поле spravka (тип ENUM), которое принимает 2 значение:
yes - у пенсионера есть удостоверение или справка о том, что он льготник
noy - нет справки, значит он не имеет право на льготы

При добавлении человека в базу первый шаг - заполнение паспортных данные (заноситсяв таблицу users), и если есть удостоверение льготника в селекте ставим значение yes и далее второй шаг - заполнение данных удостоверения льготника (табл. spravka)

Теперь, когда собрана нужная информация, осущестляем запрос в БД
1) запрос на добавление данных в таблицу users
2) запрос на добавление данных в таблицу spravka (для обеспечения целостности связи в таблице справка есть поле id_user (куда записывается целочисленное значения, вызванное функцией mysql_insert_id() )

Теперь как я осущестляю поиск...Сам запрос

<?
//SQL-запрос
$user_search "SELECT * FROM `users` WHERE `surname` = '$surname'
                            AND `name` =  '
$name'
                            AND `patronymic` ='
$patronymic'
                            AND `passport_series` = 
$passport_series
                            AND `passport_number` = 
$passport_number
                            AND `dr` = '
$dr'";
?>

Тоесть поиск осущестляется по паспортным данным
Фамилия, имя, отчество, серия паспорта, номер паспорта, и дата рождения
Структура users

CREATE TABLE `users` (
  `id_user` int(11) NOT NULL auto_increment,
  `surname` varchar(50) NOT NULL default '',
  `name` varchar(50) NOT NULL default '',
  `patronymic` varchar(50) NOT NULL default '',
  `dr` date NOT NULL default '0000-00-00',
  `passport_series` int(4) NOT NULL default '0',
  `passport_number` int(6) NOT NULL default '0',
  `area` varchar(50) NOT NULL default '',
  `street` varchar(50) NOT NULL default '',
  `house` int(3) NOT NULL default '0',
  `case` int(3) NOT NULL default '0',
  `apartment` int(3) NOT NULL default '0',
  `spravka` enum('yes','noy') NOT NULL default 'yes',
  PRIMARY KEY  (`id_user`)
) ENGINE=MyISAM DEFAULT CHARSET=cp1251 AUTO_INCREMENT=1 ;


При таких огромных количествах данных в базе адекватно будет работать поиск?

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

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