[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Заполнение тестовыми данными
dyhanka
Здравствуйте.
Я делаю задание, в котором нужно создать ДБ и программу для работы с ней.
Основное требование в том, что программа должна работать "на реальных данных" (при количестве записей в таблицах порядка 10 000) и с программой должны иметь возможность работать как минимум 2 пользователя (то есть с разных машин с одной БД одновременно).

Мой вопрос: как я могу заполнить таблицы тестовыми данными? Ранее, когда мы учились писать простые программы для работы с БД, записей в таблицах было немного, они вводились вручную. Я впервые сталкиваюсь с этой задачей, подскажите, пожалуйста.

И второй вопрос: возможность многопользовательского доступа я так понимаю как-то связан с транзакциями? Я мало знаю о транзакциях. Подскажите хотя бы на словах, какие моменты я должна учесть.

Спасибо.



Спустя 7 часов, 29 минут, 50 секунд (7.12.2008 - 21:20) kirik написал(а):
Цитата
Мой вопрос: как я могу заполнить таблицы тестовыми данными?

Все просто - используя цикл:
Код
$queries = null;
for($i = 0; $i < 10000; $i++)
{
 $queries .= "(NULL, 'test1', 'Тут текст'),";
}
$query = mysql_query("INSERT INTO `table` (`id`, `title`, `text`) VALUES {$queries}");

Это пример вставки одним запросом. Если данных много, и сервер ругается, то тогда нужно разбивать запросы на части.

Цитата
И второй вопрос: возможность многопользовательского доступа я так понимаю как-то связан с транзакциями?

Мм.. не совсем понял, что понимается под словом "многопользовательский".. Если просто работа с БД, то здесь отличий нет от однопользовательского "режима".

Спустя 21 час, 22 минуты, 25 секунд (8.12.2008 - 18:42) dyhanka написал(а):
Спасибо, попробую.

Цитата
Мм.. не совсем понял, что понимается под словом "многопользовательский".. Если просто работа с БД, то здесь отличий нет от однопользовательского "режима".


Я сама ещё не совсем понимаю, я могу пользоваться неверными терминами, словами )
Сейчас попробую объяснить. Вот я создам программу, она будет работать с БД состоящей из неск.таблиц. Средствами программы можно будет осуществл. некоторые запросы на выборку, добавление, осуществлять поиск и т. д.
Вот садятся несколько человек за разные машины, запускают программу и работают посредством её с одной и той же БД. Тут могут быть какие-то конфликты? Если к примеру они одновременно будут выполнять одни и те же действия? Одни и те же запросы на выборку?

Спустя 5 минут, 49 секунд (8.12.2008 - 18:48) FatCat написал(а):
Цитата (dyhanka @ 8.12.2008 - 18:42)
Если к примеру они одновременно будут выполнять одни и те же действия? Одни и те же запросы на выборку?

Запросы встанут в очередь и будут выполняться поочередно.

Плохо, если каждый пользователь использует пакет из нескольких запросов, в этом случае запросы могут перемешаться.
Например, создание нового топика в форуме - это 3 запроса (на самом деле больше, но 3 основных):
1. Новая страка в таблице топиков;
2. Запрос номера строки;
3 Новая страка в таблицу сообщений, содержащая номер строки топика.

Если 2 пользователя это делают одновременно, есть риск, что в очередь встанут сначала 2 запросв на создание строк в таблице топиков, затем 2 запроса номера строки получат одинаковый номер, затем 2 сообщения разных пользователей уйдут в 1 топик.

В реале такое почти не встречается, скорость выполнения простого запроса составляет меньше милисекунды, и очень маловероятно чтобы 2 пользователя сработали столь синхронно, чтобы запросы перемешались.

Спустя 1 час, 21 минута, 23 секунды (8.12.2008 - 20:09) Krist_ALL написал(а):
а может несколько людей подключатся к ссерверу с бд и буду себе работать.... и не писать никакие пхп скрипты...

Спустя 24 минуты, 6 секунд (8.12.2008 - 20:34) kirik написал(а):
Цитата
Тут могут быть какие-то конфликты? ... Одни и те же запросы на выборку?

Запросы на выборку конфликтовать не могут, а вот запросы на добавление/изменение таблиц проходят по такому алгоритму -
1. Приходит запрос на добавление одной строчки в какую-то таблицу
2. Эта таблица блокируется для записи (тоесть никто больше не может добавить записи в нее. остальные запросы на добавление встают в очередь а запросы на чтение могут проходить.)
3. Производится добавление данных
4. Таблица разблокируется.
это небольшое добавление к тому, что озвучил FatCat. )

Цитата
а может несколько людей подключатся к ссерверу с бд и буду себе работать.... и не писать никакие пхп скрипты...

чаво?? =)
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.