![]() |
|
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]()
|
|
| Sufius |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 5.4.2004 Где: Питер Репутация: 1 Всего: 1 |
Доброго времени!
Вот задумался над такой проблемой. Если делать сайт и выкладывать туда музыку... если кол-во композиций переваливает более 20.000 то возникает один вопрос - как создавать БД... Есть два пути: 1) создать 1 таблицу, куда складировать всё инфу... например, id | artist | album | song | letter | в поле letter указывать букву, которая отображает букву для поиска... допустим у строка выглядит так 1 | Сплин | Гни свою линию | Брат-2 | С | то есть когда пользователь делает поиск по букве "С" ему отображается Сплин и другие группы, у которых поле буква "С"... Далее он наживает на Сплин и ему идет выборка по полю artist... Недостаток - когда более 20.000 строк - довольно долго будет обрабатывать запрос... 2) создать таблицы для каждой буквы... но тогда, когда поиск идет не по букве, а через форму поиска, то скрипт должен будет проверить все таблицы... а это около 60... Вопрос... может как-то по другому можно сконструировать БД? кто что может предложить? |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 5 Всего: 454 |
Почитай что-нить про организацию БД, а? Про нормализацию там и пр...
Станет понятно что таблиц должно быть 2 или 3, что поле letter нахрен не надо, что... впрочем твой случай относится как раз к категории классических и в любой литературе разобран по косточкам - может на другом материале, но смысл тот же... -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 6 Всего: 22 |
у меня есть такой сайт (на локалке, писАл сам) структура такая:
|
|||
|
||||
| VVp |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 11 Регистрация: 29.4.2004 Репутация: нет Всего: нет |
Не на самой серверной машине такой запрос
по таблице из примерно 10000 записей, более чем на 20 полей, среди которых даже есть поле типа text, занял 0.0023 сек. Так что ты напрасно беспокоишься. 20000 записей - это еще не повод для беспокойства. |
|||
|
||||
| Гость_Sufius |
|
|||
|
Unregistered |
Только один вопрос... Проблема с русскими наименованиями... В БД забить-то можно, но вот как делать поиск по русским буквам? Выдает Интернал Сервер Еррор...
Это понятно... с если буква русская? Как тогда писать запрос поиска по букве? |
|||
|
||||
| Opik |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Vingrad developer Сообщений: 1918 Регистрация: 6.10.2004 Где: Рига Репутация: 24 Всего: 55 |
так и писать =)
|
|||
|
||||
| Farik |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 49 Регистрация: 1.2.2005 Репутация: нет Всего: 1 |
Если БД - mysql, то рекомендую позаботиться о строке "default-character-set=cp1251" или "default-character-set=utf8" в конфиге. По умолчанию этого нет и возникают проблемы именно с работой русских символов.
|
|||
|
||||
| Sufius |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 5.4.2004 Где: Питер Репутация: 1 Всего: 1 |
Э-э-э... а в каком файле это надо установить?
в этом что ли config-win.h? |
|||
|
||||
| Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 6 Всего: 22 |
Sufius
httpd.conf |
|||
|
||||
| Sufius |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 5.4.2004 Где: Питер Репутация: 1 Всего: 1 |
Хех... конфиг апача...
там есть строка AddDefaultCharset WINDOWS-1251 изменяю на cp1251 или utf8 - нет эффекта... та же internal error... |
|||
|
||||
| IZ@TOP |
|
||||
![]() Панда-бир! ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 4795 Регистрация: 3.2.2003 Где: Бамбуковый лес Репутация: 44 Всего: 73 |
А может всеже в my.ini или my-*.cnf, который находится в корневой папке MySQL'я? Добавлено @ 17:01
Скорее всего это связано не с MySQL'ем а с настройкой Apache. -------------------- Один из розовых плюшевых-всадников апокалипсиса... очень злой... Семь кругов ада для новых элементов языка Мои разрозненные мысли |
||||
|
|||||
| Sufius |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 5.4.2004 Где: Питер Репутация: 1 Всего: 1 |
2 IZ@TOP
В папке мускула таких файлов не отыскал... нашел только config-win.h... попробую с ним поиграться... Возможно... просто он выдаёт её, когда поиск болжен осуществляться по русской букве... в остальном всё работает... |
|||
|
||||
| Vaulter |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1724 Регистрация: 30.12.2002 Где: бункер Репутация: 6 Всего: 22 |
IZ@TOP
точно. демон попутал |
|||
|
||||
![]()
|
| Правила форума "PHP" | |
|
|
Новичкам:
Важно:
Внимание:
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | PHP: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |