|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
18.11.2010, 15:19 | #31 | ||||
Форумчанин
Регистрация: 20.05.2009
Сообщений: 506
|
Цитата:
Цитата:
Код:
Цитата:
Код:
Цитата:
Судя по вашему последнему посту вы до этого вообще не знали как решается проблема many-to-many связей. Приведенный Androkol'ом пример - классический. У вашего же подхода очень много слабых мест. Почитайте что ли про проектирование БД. Последний раз редактировалось ssdm; 18.11.2010 в 15:24. |
||||
18.11.2010, 15:30 | #32 |
Пользователь
Регистрация: 27.08.2010
Сообщений: 16
|
Коллеги, оцените, пожалуйста, что я написал. Пойдет ли или можно было проще сделать?
Категории передается обработчику в виде переменных: $category[1], $category[2], $category[3], $category[4], $category[5] Вот так будут вставляться в таблицу категории при создании статьи: PHP код:
PHP код:
|
18.11.2010, 15:50 | #33 |
Форумчанин
Регистрация: 20.05.2009
Сообщений: 506
|
Выглядет неплохо.
ЗЫ. Рекомендую при работе с БД пользоваться функцией для защиты от иньекций. Нпример Код:
mysql_query("DELETE FROM articles_categories WHERE id_article=".ToSql($id_article)); |
18.11.2010, 15:53 | #34 | |||||||
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
to Виталий Желтяков:
Цитата:
Я ведь про ЧСВ не зря вам заметил - вы вот сами может и не замечаете,но ВО ВСЕХ своих постах вы слово "я" пишете с большой буквы(см. цитату ниже).Для людей,понимающих психологию - это важный момент. Цитата:
Цитата:
Цитата:
Это с чего бы на ваш вариант не будет влиять изменения количества статей и категорий??? Увеличивается количество объектов, в которых производится поиск - соответственно,увеличивается время поиска - это логика. К тому же,как я и говорил ранее - я сильно сомневаюсь,что при "более 100 категорий"(условия ТС) ваш поисковый запрос,содержащий более 100 элементов OR `category_<1 - 100>` = '$category' будет быстрее моего единственного условия WHERE `category_id` = '$category'. Никогда не поверю - ибо бред. Цитата:
Конечным пользователям, из которых 99% даже не знает,что такое phpMyAdmin, важно только одно - удобство использование вашего продукта лично для них. Это подразумевает простой и интуитивно-понятный веб-интерфейс,позволяющий максимально гибко управлять продуктом. При чём тут удобство редактирования в phpMyAdmin ???? Кстати - по поводу редактирования. Что-то я не заметил вашего решения по редактированию самих категорий,их количества.... Это важный момент в вашем случае. Вы тут мне пеняли на избыточность и громоздкость моего кода, вместо простого использования ENUM - ну так покажите,насколько это "простое использование"!!! Типичные задачи - изменение названия категории,добавление новой категории,удаление ненужной категории,изменение допустимого количества категорий для одной статьи(напр. не 5,а 10). Будьте любезны,примерчик - ну просто чтоб мы все по достоинству оценили "простоту и могущество" использования ENUM в данном случае. Цитата:
При чём тут категория - вы же просто выбираете 1 статью,при этом пытаясь её получить по `name`, используя для этого почему-то $id??? Цитата:
Мой подход отличен от вашего - но врядли ошибочен,ибо работает корректно. |
|||||||
18.11.2010, 16:10 | #35 |
Пользователь
Регистрация: 27.08.2010
Сообщений: 16
|
А нужно ли в таблице articles_categories кроме полей id_article и id_categories еще и 3-поле id(auto_increment) с первичным ключом? Или в данном случае оно излишне? Или для чего-нибудь может пригодиться?
Последний раз редактировалось Nikolai_; 18.11.2010 в 16:13. |
18.11.2010, 16:12 | #36 | |
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
Цитата:
Потому как код абсолютно идентичен в двух местах,а редактировать(если вдруг что) удобнее-таки в одном месте. Меньше повторов - чище и понятнее код. PS : поле `id` AUTO_INCREMENT тут скорее всего не пригодится,потому что критичны либо сочетания article_id - category_id, либо только category_id - значит этих значений достаточно. Не забудьте про индексы. Последний раз редактировалось Andkorol; 18.11.2010 в 16:17. |
|
18.11.2010, 16:18 | #37 | ||||||||||
Старожил
Регистрация: 19.04.2010
Сообщений: 2,702
|
Цитата:
Цитата:
И то что, Вы хотите получить легко организовать: Код:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Цитата:
Вот поэтому мой вариант будет быстрее при наращивании числа категорий. Можете протестировать на xdebug. Цитата:
Вопрос не в этом... Каждый раз как Вы будете изменять категории, у Вас будут также задействованы ДВЕ таблицы, а у меня ОДНА. У меня с модификацией таблицы просто: Собираем все категории в переменную через запятую ($condition) и Код:
Цитата:
|
||||||||||
18.11.2010, 16:39 | #38 | ||
Форумчанин
Регистрация: 20.05.2009
Сообщений: 506
|
Цитата:
Цитата:
Код:
http://www.adminworld.ru/tag/mysql пункт 15 |
||
18.11.2010, 16:45 | #39 | ||||
Старожил
Регистрация: 31.05.2010
Сообщений: 3,301
|
Цитата:
Ну-ка попробуем ваш "простой" вариант модификации в деле: Выполните последовательно эти шаги: 1.Создаём тестовую таблицу: Цитата:
Цитата:
Задача - изменить названия и кол-во категорий. Цитата:
|
||||
18.11.2010, 16:55 | #40 | ||
Старожил
Регистрация: 19.04.2010
Сообщений: 2,702
|
Цитата:
Код:
Код:
Цитата:
Ещё раз обратите внимание на приведённую мной таблицу - она статична, т.к. использует поля int, enum и var. |
||
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
переход статей | timon777777 | PHP | 9 | 27.06.2010 23:16 |