![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| mishaSL |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1046 Регистрация: 10.1.2007 Где: Санкт-Петербург Репутация: 7 Всего: 54 |
flashaa, эта информация не лишняя. Это называется нормализация структуры БД. С такой структурой БД можно будет одним запросом выбирать необходимую информацию, причем достаточно быстро.
Когда вы храните информацию в виде id1|id2|id3 в текстовом поле, то есть очевидные минусы: 1. для выборки необходимо минимум два запроса: выбрать эту строку -> обработать результат -> выброть необходимые данные по пользователям. 2. Вы изначально не даете себе возможность хранить другие дополнительные данные, к примеру дату закрытия. Или есть появится необходимость в функции повторного открытия комната, то вам будет необходимо всего лишь добавить в таблицу с историей поле дата и вы сможете хранить информацию о любом кол-ве закрытия комнат. 3. с отдельной таблицей у вас появляется возможность бысторого вывода статистики, к примеру: в каких комнатах пользователь участвовал и т.д. -------------------- Лучший способ научиться программированию - это посмотреть как это делают другие... |
|||
|
||||
| flashaa |
|
||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 796 Регистрация: 7.3.2006 Репутация: 2 Всего: 25 |
1. Тут согласен 2. Дата закрытия, открытия - параметры самой комнаты, они хранятся в соотв. полях таблицы комнат. Исходя из задачи: открывать закрытую комнату нельзя. 3. А вывод статистики в каких комнатах участвовал человек у меня происходит
само поле history выглядит как "(id1,id2,id3)" Хотя вы меня переубедили, лучще сделаю лишнюю таблицу, сделаю бОльший запрос по вставке, зато все запросы по выборке упростятся а PHP-код упроститься и при вставке и при выборке. Это сообщение отредактировал(а) flashaa - 29.6.2007, 17:30 |
||||
|
|||||
| mishaSL |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1046 Регистрация: 10.1.2007 Где: Санкт-Петербург Репутация: 7 Всего: 54 |
-------------------- Лучший способ научиться программированию - это посмотреть как это делают другие... |
|||
|
||||
| flashaa |
|
||||||||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 796 Регистрация: 7.3.2006 Репутация: 2 Всего: 25 |
Что-то не работает вот такой запрос:
вот так извлекаю:
запрос проходит нормально. а вот извлечение выдает: Column count doesn't match value count at row 1 |
||||||||
|
|||||||||
| sTa1kEr |
|
|||
|
9/10 программиста ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1553 Регистрация: 21.2.2007 Репутация: 9 Всего: 146 |
Это ошибка бывает при вставке данных. Вы уверенны, что она происходит именно в этом запросе? Делайте проверки после каждого запроса. Вопросительный знак - это вы так колонку назвали? Оригинально |
|||
|
||||
| flashaa |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 796 Регистрация: 7.3.2006 Репутация: 2 Всего: 25 |
Да, ошибка означает, что кол-во заявленных полей не соотвествует кол-ву значений, моя неправда..
|
|||
|
||||
| Golda |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 26.3.2007 Где: Ариель, Израиль Репутация: 6 Всего: 42 |
sTa1kEr, спасибо за информацию о stored procedures в mysql. Упустила это событие
-------------------- "For every problem, there exists a simple and elegant solution which is absolutely wrong." -- J. Wagoner, U.C.B. Mathematics |
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Базы Данных | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |