Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Одно из двух

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Без описания
NevO
Отправлено: 29 Августа, 2012 - 13:59:11
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




не знаю как правильно это называется, но есть таблица test
ID | CAT
1 | 1
2 | 1, 2
3 | 2

нужно при запросе записей с категорией (CAT) 1 выдавались ID 1 и 2, а при запросе категории 2 выдавались ID 2 и 3.
 
 Top
Мелкий Супермодератор
Отправлено: 29 Августа, 2012 - 14:17:37
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




Выкидывайте эту структуру и сделайте нормальную таблицу связи:
ID | CAT
1 | 1
2 | 1
2 | 2
3 | 2
Первичный ключ на оба поля.


-----
PostgreSQL DBA
 
 Top
NevO
Отправлено: 29 Августа, 2012 - 14:24:09
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




Мелкий пишет:
Выкидывайте эту структуру и сделайте нормальную таблицу связи:
ID | CAT
1 | 1
2 | 1
2 | 2
3 | 2
Первичный ключ на оба поля.


такой вариант не подходит. в таблице более 10.000 записей. категорий планируется не менее 10. таблица очень сильно увеличит свои объемы, чего не хотелось бы. есть другие варианты?
 
 Top
Stierus Супермодератор
Отправлено: 29 Августа, 2012 - 14:45:34
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




других вариантов нет
 
My status
 Top
Мелкий Супермодератор
Отправлено: 29 Августа, 2012 - 15:01:31
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




NevO пишет:
таблица очень сильно увеличит свои объемы

И что?
И 50млн. записей - не проблема (и те - на урезанной виртуалке). В отличии от вашей необходимости сканировать всю таблицу на каждый чих, что грохнется с треском не доходя даже до смехотворного 1 млн. записей.
(Добавление)
Мелкий пишет:
Первичный ключ на оба поля.

И одновременно уникальный индекс по cat & id, забыл.


-----
PostgreSQL DBA
 
 Top
Zuldek
Отправлено: 29 Августа, 2012 - 15:17:00
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)




Искать кто строит такую структуру данных и расстреливать, а потом искать кто их этому учил и в каких вузах закрывать их и уволнять.
Правильный вариант указан. Пройтись один раз скриптом, заполнить таблицу связей и забудете о проблемах.
 
 Top
DelphinPRO
Отправлено: 29 Августа, 2012 - 15:21:16
Post Id



Активный участник


Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012  


Помог: 353 раз(а)




NevO пишет:
такой вариант не подходит

ну да , связь М-М придумали ламеры Улыбка
числовые поля, да еще индексированные, обрабатываются шустро. и как сказали выше - и несколь лямов записей - ерунда


-----
Чем больше узнаю, тем больше я не знаю.
 
 Top
NevO
Отправлено: 29 Августа, 2012 - 15:24:15
Post Id


Новичок


Покинул форум
Сообщений всего: 25
Дата рег-ции: Сент. 2010  


Помог: 0 раз(а)




Всем спасибо, нашел решение с помощью LIKE
 
 Top
Zuldek
Отправлено: 29 Августа, 2012 - 15:28:41
Post Id


Постоянный участник


Покинул форум
Сообщений всего: 2122
Дата рег-ции: Июнь 2010  


Помог: 50 раз(а)





...
желаю вам потом заняться организацией поиска по категориям Улыбка

(Отредактировано автором: 29 Августа, 2012 - 15:30:17)

 
 Top
Мелкий Супермодератор
Отправлено: 29 Августа, 2012 - 15:29:32
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




NevO, поздравляю с нахождением костыльного решения для костыльной структуры. Когда понадобится производительность и будет значительно сложнее переписать - припомните нас.

Касательно лайка - помните о том, что он работает посимвольно и like '%1%' слопает так же 10, 21 и прочие. А like '%,1,%' не слопает строку "1,2"


-----
PostgreSQL DBA
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с СУБД »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB