Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
netadmin.ws
Панель управления Регистрция свободна! Календарь Список пользователей Часто задаваемые вопросы Поиск по форуму Архив скриптов Главная   
Форум сетевых администраторов
Форум сетевых администраторов Форум сетевых администраторов » Программирование » PHP » Опции для категорий
Предыдущая тема     Следующая тема
Автор
Тема    Новая тема     Ответить на эту тему
polo
Администратор
Средний рейтинг: 4.77 | Оценок: 106
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус: polo в оф-лайне
Опции для категорий [сообщение #30331]

В общен название не совсем соответсвует тому что я хочу но всеже попробую объяснить. Ð_тот вопрос не относится совсем к пхп а скорее всего к Mysql. Объясню на примере:
Имеются обычные категории, при добавлении элемента в категорию нужно чтобы для каждой категории были определенные опции. Ð_то все понятно, создается таблица для опций, каждой опции присваивается ид категории. Но вот как быть если хочется чтобы одна опация была доступна в разных категориях? Мне на ум пришел только один вариант, хранить все ид категорий в одном поле и разделять их каким-то символом, но в этом случае затрудняется выборка нужных записей. Также можно для каждой категории создавать копии записей опций, но этот вариант требует усилий по программированию при присваивании опций.
Пока все это писал пришла еще идея, связывать катигорию при помощи отдельной таблицы, где хранить ид опции - ид категории, думаю то что нужно .

Может у кого-нибудь есть еще идеи по этому поводу?

__________________
Всегда есть решение.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 05-01-2003 13:51
Нажмите сюда для просмотра профайла polo Отправить Персональное сообщение polo Посетить домашнию страничку polo! Найти сообщения от polo Добавить polo в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
SCHIZO
STFW
Средний рейтинг: 5 | Оценок: 8
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Jul 2002
Место проживания: Кольский п-ов
Публикаций: 305
Статус: SCHIZO в оф-лайне
[сообщение #30504]

Не совсем понял о чем речь, но рискну предположить что тебе требуется всего лишь создать поле с набором того что тебе нужно.... Тип такого поля в MySQL называется ENUM или SET. Отличаются возможностью установки количества значений (SET одно из набора, ENUM несколько из набора)

Я например так храню статус пользателей. Для каждого пользователя определяется один идентификатор(просто строка) статуса, а возможные варианты статуса хранятся прямо в типе поля..

__________________
FAQ OFF

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 07-01-2003 00:26
Нажмите сюда для просмотра профайла SCHIZO Отправить Персональное сообщение SCHIZO Посетить домашнию страничку SCHIZO! Найти сообщения от SCHIZO Добавить SCHIZO в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
polo
Администратор
Средний рейтинг: 4.77 | Оценок: 106
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус: polo в оф-лайне
[сообщение #30508]

SCHIZO точно не понял, блин трудно такое объяснить .
ЫУЕ не подходит, там должно хранится ид нескольких категорий. ENUM тоже не пожходит так как оно может хранит до 50 значений а если категорий больше и как быть при добавлении удалении категорий. Ð_то отпадает однозначно.

Смотри, имеем например таблицу, где хранятся данные о нужных для заполнения полях при добавлении элемента в категорию, таблица содержит следующие данные:
марка
цвет
размер

Теперь имеем таблицу с категориями которая содержит данные
Автомобили
Ð_убашки
Трусы
Теперь нам нужно привязать отдельные поля к категориям.
Например:
Автомобили - Марка, цвет
Ð_убашки - Ð_азмер, цвет
трусы - размер
отсюда: к Ð_азмер нам нужно привязать две категории рубашки и трусы, к цвет тоже две (автомобили и рубашки) и соответсвенно к марка нужно привязать автомобили. Вот теперь представь что категорий тысяча.

__________________
Всегда есть решение.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 07-01-2003 00:41
Нажмите сюда для просмотра профайла polo Отправить Персональное сообщение polo Посетить домашнию страничку polo! Найти сообщения от polo Добавить polo в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
SCHIZO
STFW
Средний рейтинг: 5 | Оценок: 8
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Jul 2002
Место проживания: Кольский п-ов
Публикаций: 305
Статус: SCHIZO в оф-лайне
[сообщение #30513]

Вроде понял...
Тогда в чем проблема?
Например..
таблица "машины":
ид_машины|машина|ид_цвета|иÐ
´_марки|....
таблица "цвета"
ид_цвета|цвет
таблица "марки"
ид_марки|марка

SELECT и прочее делаешь с JOIN || LEFTJOIN объединяя нужные тебе поля из разных таблиц и получаешь в результате обобщенные данные

Опять пример из практики: у меня данные о пользователях хранятся в трех таблицах: авторизация, данные, ники(разрешено иметь три ника)
чтобы выбрать ВСЕ о пользователе я делаю запрос объединяя эти три таблицы. Причем пользователь не заполнивший дополнительную инву будет отсутсвовать в таблице с данными. Связываю по uid(идентификатор пользователя)

__________________
FAQ OFF

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 07-01-2003 01:47
Нажмите сюда для просмотра профайла SCHIZO Отправить Персональное сообщение SCHIZO Посетить домашнию страничку SCHIZO! Найти сообщения от SCHIZO Добавить SCHIZO в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
polo
Администратор
Средний рейтинг: 4.77 | Оценок: 106
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус: polo в оф-лайне
[сообщение #30536]

брр, как это таблица машины? машины это категория, но если ты говоришь про то как хранить данные то это не проблема. Ну да ладно забудь, я думаю единственное приемлимое решение здесь так как говорил выше:

quote:
связывать катигорию и опции при помощи отдельной таблицы, где хранить ид опции - ид категории

__________________
Всегда есть решение.

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 07-01-2003 07:06
Нажмите сюда для просмотра профайла polo Отправить Персональное сообщение polo Посетить домашнию страничку polo! Найти сообщения от polo Добавить polo в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя
SCHIZO
STFW
Средний рейтинг: 5 | Оценок: 8
/нажмите чтобы посмотреть кто оценивал/

Зарегистрирован: Jul 2002
Место проживания: Кольский п-ов
Публикаций: 305
Статус: SCHIZO в оф-лайне
[сообщение #30540]

все почти так как ты говоришь...
представь что таблица "машины" это список вариантов этих машин..

в итоговую таблицу ты пишешь не поле "машина" а "ид_машины". По этому ид можно получить полную информацию о том какого она цвета, марки и тд.

P.S.
поищи инфу по теме "набор стандартов проектирования данных" или "четвертая и пятая формы нормализации"

__________________
FAQ OFF

Сообщить модератору об этом сообщении | Предупреждение | IP: определен

Old Post 07-01-2003 07:57
Нажмите сюда для просмотра профайла SCHIZO Отправить Персональное сообщение SCHIZO Посетить домашнию страничку SCHIZO! Найти сообщения от SCHIZO Добавить SCHIZO в свой список друзей Редактировать/Удалить сообщение Ответить Цитируя



Формат времени GMT. Текущее время 10:37.
Новая тема   Ответить на эту тему [ Версия для печати Печать | Отправить эту страницу другу/знакомому! Отправить | Получать уведомления об обновлении этой темы Подписка ] Предыдущая тема     Следующая тема
Навигация по форуму:
Оценка темы:

Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения.
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
 

Page generated in 0.01011300 seconds (41.08% PHP - 58.92% MySQL) with 26 queries.


  Главная :: Форум :: Web ClipArt :: Поиск :: Статистика :: Топ 10 :: Публикация :: Рекомендовать
©NetAdmin.ws, 2001-2026.
Powered by: vBulletin
Copyright ©2000, 2001, Jelsoft Enterprises Limited.