|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
17.11.2010, 14:56 | #21 | ||||||||
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
to Виталий Желтяков:
Хотелось бы поподробнее про "быдлокодерство" - какая связь между этим термином,и моим вариантом решения? Надеюсь - не только из-за того,что моя реализация без ENUM? Вообще вам совет - вы за словами своими следите!!! В последнее время ваши посты содержат слишком много резких высказываний и неуместного сарказма. Уж не знаю,что ,по-вашему, даёт вам право общаться с окружающими в таком тоне - но ваша наглость не делает вас профессионалом. Цитата:
Цитата:
Кстати,насчет скорости запросов: Гипотетический вариант - каждая статья имеет 10 категорий. Задача - выбрать ID статей,относящихся к категории с ID 22. Мой вариант: Цитата:
Цитата:
Цитата:
Само будет всё редактироваться??? Уличная магия??? Цитата:
7.1.2.1 Характеристики статической таблицы (с фиксированной длиной) Цитата:
Цитата:
Читайте больше хороших книг по программированию - это должно помочь. |
||||||||
17.11.2010, 15:21 | #22 |
Пользователь
Регистрация: 27.08.2010
Сообщений: 16
|
Да, Andkorol, Вы правы. Я изначально спроектировал слишком громоздкий и недружественный пользователю интерфейс для выбора категорий. Предполагалось, что будет текстовое поле и ниже выпадающий список категорий. При выборе категории по событию онклик в текстовое поле вставлялся бы id очередной категории через запятую, а потом все это обрабатывалось бы как мы с Вами разбирали выше. Но мне нигде не попадалось решение подобной проблемы или хотя бы пример, поэтому пришлось придумывать самому и так извращаться.
Предложенный Вами вариант интерфейса очень хорош и весьма дружественен для пользователя. Его я использую в своем проекте. Правда придется решить некоторые задачи, с которыми ранее я никогда не сталкивался. Надеюсь, мне помогут советами. А пока хотел бы попросить Вас, Andkorol, пояснить в общих словах некоторые пункты в предложенном Вами решении. А конкретней: Что имелось ввиду под словами «также можно удаление реализовать при помощи checkbox-ов»? В смысле при редактировании будут выводиться имеющиеся категории, а напротив них чекбоксы, отметив которые можно удалить соотв. категории? А что имелось ввиду под этими словами «Дополнительно,при помощи JavaScript делаем возможность добавлять дополнительные списки(select-ы) - чтобы добавлять новые категории.»? |
17.11.2010, 16:31 | #23 | ||
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
Цитата:
Для редактирования этих категорий вы создаёте 5 списков select, в каждом из которых уже стоит нужная категория(SELECTED). Рядом с каждым списком находится checkbox "Удалить". Допустим,вам более не нужны 5 категорий для этой статьи,достаточно 4-х. Вы отредактировали 4 из них,как вам нужно,а последнюю(например,на самом деле - не важно какую) помечаете checkbox-ом как "необходимо удалить". После сабмита формы - проверяется массив значений checkbox-ов - и отмеченные ID категорий удаляются(только для данной статьи). Альтернатива (чтоб не морочиться с checkbox-ами) - в списки добавить значение DELETE - и если для данной категории будет выбрано оно - эту категорию удаляем(только для данной статьи). Цитата:
Примеры реализации: Добавление полей в форму Добавление полей в форму 2 Альтернатива этому - если есть что-то типа "Настроек Сайта",где редактируются базовые настройки сайта(типа - кол-во статей на странице,кол-во результатов поиска на странице,кол-во комментариев и прочее) - так вот в таком месте можно сделать возможность задавать/изменять допустимое кол-во категорий для статей. Вариант с JS - более сложный,зато и более гибкий. |
||
17.11.2010, 16:47 | #24 | |
Пользователь
Регистрация: 27.08.2010
Сообщений: 16
|
Цитата:
|
|
17.11.2010, 17:08 | #25 | ||||
Старожил
Регистрация: 19.04.2010
Сообщений: 2,702
|
Цитата:
Цитата:
Вся проблема в том, что Вы не понимаете суть типа поля ENUM и не знаете преимущество статических таблиц. К документации как Я понимаю Вас посылать бесполезно. ENUM - хранит значение в виде tiny - числа, но выводит и записывает значение в виде строки (или другого простого типа). От сюда: - Проблемы с select просто нет, т.к. можно сразу выводить и вводить название категорий. - Нет дополнительных запросов дабы узнать, что за категория. Цитата:
Цитата:
В догонку: - Проблема получения списка категорий для моего варианта может легко решаться при помощи сериальзованного массива из файла. Последний раз редактировалось Виталий Желтяков; 17.11.2010 в 17:12. Причина: Добавление информации |
||||
17.11.2010, 17:38 | #26 | |
Форумчанин
Регистрация: 20.05.2009
Сообщений: 506
|
to Виталий Желтяков
На мой вопрос ответите ? Цитата:
|
|
17.11.2010, 18:55 | #27 | ||||
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
Вполне - в этом случае приемлимо любое решение,предоставляющее нужных функционал.
Цитата:
Вы можете любым способом тешить своё ЧСВ - только помните,что всегда есть разница между тем,кем вы себя считаете - и тем,кем вы являетесь на самом деле. Цитата:
Цитата:
По поводу "преимущества статических таблиц" - в вашем-то случае это при чём? Вы же прямо в `articles` свои ENUM-ы собрались лепить,а она явно динамическая... Цитата:
Сообщу вам страшную тайну - все вот эти телодвижения с категориями будут происходить/производиться в Админ-зоне ресурса,причём врядли очень часто. Поэтому все эти бредни про "пиковую нагрузку", "а запросов-то два"(которые,кстати,будут быстрее чем ваш один), "выдёргивание значений из нескольких таблиц" - здесь не уместны,мягко говоря. Отказ от простого и удобного функционала в угоду "гипотетической" экономии ресурсов сервера - это лично ваше дело,в своих проектах поступайте как вам угодно. Пока же от вас сколь-либо окончательно оформленного варианта не поступило,ну или хотя бы фрагмента реализации - дабы не быть голословным. Только "белый шум"... |
||||
18.11.2010, 13:35 | #28 | ||||||
Старожил
Регистрация: 19.04.2010
Сообщений: 2,702
|
Надоели вы мене все...
Ну, так по порядку: - Создаем таблицу: + id - int(9) - auto_increment + name - char(30) + author - char(20) + link - char(20) + category1 - enum('Категория 1', 'Категория 2', 'Категория 3', 'Категория 4', 'Категория 5') + category2 - enum('Категория 1', 'Категория 2', 'Категория 3', 'Категория 4', 'Категория 5') + category3 - enum('Категория 1', 'Категория 2', 'Категория 3', 'Категория 4', 'Категория 5') + category4 - enum('Категория 1', 'Категория 2', 'Категория 3', 'Категория 4', 'Категория 5') + category5 - enum('Категория 1', 'Категория 2', 'Категория 3', 'Категория 4', 'Категория 5') Она статическая. - Запрос на выбор одной категории: Код:
Код:
+ Выполняется один запрос; + Нет никаких проблем с select-ами. В моём случаи можно даже использовать Like запросы напрямую. Теперь по комментариям: Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Мой вариант даже на порядок легче редактировать через phpmyadmin, т.к. категории обозначаются не в виде цифр, значения которых надо смотреть в другой таблице, а в виде списка. Да, это личное дело каждого как программировать, но надо программировать оптимально и красиво, а не в лоб, как Вы это делаете. Да, ваш пример полностью подходит под третью нормальную форму, логичен и достаточно прост для понимания, но он не использует ресурсы и возможности системы на полную. Это как ездить на велосипеде, только из-за того, что вы на нём научились ездить. А машины называть "отродьми зла". Тут самое противное, что Вы даже не хотите менять точку зрения, если вам указали ваши ошибки. Цитата:
В догонку: - Оба наших примера можно сильно ускорить при использовании memcached, но это отдельный разговор. Последний раз редактировалось Виталий Желтяков; 18.11.2010 в 13:39. |
||||||
18.11.2010, 13:44 | #29 | |||||
Форумчанин
Регистрация: 20.05.2009
Сообщений: 506
|
Цитата:
Нужно найти статьи , где каждая статья принадлежит категории трем определённым категориям. Вы наверное недоконца поняли что я от вас просил. А потом я вам приведу пример такого запроса для схемы БД ,что Androkol привел. Тогда и сравнить можно чей запрос быстрее выполнится. Цитата:
Цитата:
Цитата:
Цитата:
Тоже один запрос. Последний раз редактировалось ssdm; 18.11.2010 в 14:07. Причина: UPD |
|||||
18.11.2010, 14:51 | #30 | ||||
Старожил
Регистрация: 19.04.2010
Сообщений: 2,702
|
Цитата:
Цитата:
Цитата:
Цитата:
Сначала получаем id, потом саму статью - два запроса. |
||||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
переход статей | timon777777 | PHP | 9 | 27.06.2010 23:16 |