|
|
|
| Мне заказали проект от фонда соц. защиты. В БД будет хранится 70 тыс. льготников.
Нужно исключить "двойную продажу" проездных талонов на тролейбус, маршрутное такси.
также отчеты по месяц, по дням по квартлам, по районам.
Не загнется ли БД если в БД будет хранится такое число пользоватлей, плюс еще разные даные, относящиеся к основной таблице где хранятся льготники?
Так примерно я уже представляю как я буду делать, но меня терзает такое огоромное кол-во данных | |
|
|
|
|
|
|
|
для: ols
(14.10.2008 в 13:18)
| | >Не загнется ли БД если в БД будет хранится такое число пользоватлей, плюс еще разные
>даные, относящиеся к основной таблице где хранятся льготники?
Не загнется - объем более чем адекватный. | |
|
|
|
|
|
|
|
для: cheops
(14.10.2008 в 13:22)
| | А вот в качестве интереса есть таблица users
id|name|....|
В этой таблице хранится 50 тыс. строк
обычный запрос
mysql_query("SELECT * FROM users WHERE name='$name'");
|
время на выполнение запроса хватит несколько микросекунд?
Я это к тому что стоит ли это делать такой проект средствами php, mysql | |
|
|
|
|
|
|
|
для: ols
(14.10.2008 в 13:35)
| | Хм... а почему по имени ищите пользователя, а не по номеру? Если это поиск, то почему поиск ведется по точному совпадению, а не при помощи LIKE? Со строками поиск быстро нигде вестись не будет - здесь сложно заранее что-то определенное сказать.
>Я это к тому что стоит ли это делать такой проект средствами php, mysql
А кто будет пользоваться системой и сколько их будет человек? | |
|
|
|
|
|
|
|
для: cheops
(14.10.2008 в 15:07)
| | >Хм... а почему по имени ищите пользователя, а не по номеру? Если это поиск, то почему поиск ведется по точному совпадению, а не при помощи LIKE? Со строками поиск быстро нигде вестись не будет - здесь сложно заранее что-то определенное сказать.
Да я просто ради интереса спросил, а если поиск конечно делать, а так посик по разным критериям нужен.
>>Я это к тому что стоит ли это делать такой проект средствами php, mysql
>А кто будет пользоваться системой и сколько их будет человек?
По городу будет стоять 50 точек где продаются проездные талоны, в каждой точке будет стоять компьютер и доступ в интренет.
Вот мне интересно ваше мнение, по-Вашему Вы бы использовали лучше C++ и например MS SQL Server или Oracle? Ведь задача стоит так чтобы полчить этим точкам доступ к общей БД. | |
|
|
|
|
|
|
|
для: ols
(14.10.2008 в 15:48)
| | Все что вы хотите можно реализовать на PHP и MySQL, и оно будет нормально работать...
И не надо тратить денег на платное програмное обеспечение... | |
|
|
|
|
|
|
|
для: ols
(14.10.2008 в 15:48)
| | Нет, можно и MySQL использовать, только клиент лучше толстый писать на C# и C++. Web-интерфейс удобнее с точки зрения сопровождения, а вот с точки зрения эргономики часто уступает толстому клиенту. | |
|
|
|
|
автор: DEM... (16.10.2008 в 12:21) |
|
|
для: cheops
(14.10.2008 в 15:07)
| | Если бы это сообщение написал какой нить новичёк, то я бы подума что он выпенривается :)Как-то странно написано сообщение, будто и не вы писали :) | |
|
|
|
|
|
|
|
для: DEM...
(16.10.2008 в 12:21)
| | Дело в том, что выбор между толстым и тонким клиентом в таких системах всегда труден. Тонкий клиент заманчив по простоте разработки и сопровождению, однако, если важна скорость - обычно прибегают к толстому клиенту. Мы и так и эдак ПО разрабатывали - где-то достаточно тонкого клиента, где-то приходилось отказываться от Web и разрабатывать толстый клиент. Без подробностей сложно ответить на вопрос достаточно ли будет PHP+MySQL. | |
|
|
|
|
|
|
|
для: 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 ;
|
При таких огромных количествах данных в базе адекватно будет работать поиск? | |
|
|
|