 |
 |
Форум сетевых администраторов » Программирование » PHP » Опции для категорий
| Автор |
| Тема |
 |
|
 |
|
|
|
Администратор


Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус:  |
В общен название не совсем соответсвует тому что я хочу но всеже попробую объяснить. Ð_тот вопрос не относится совсем к пхп а скорее всего к Mysql. Объясню на примере:
Имеются обычные категории, при добавлении элемента в категорию нужно чтобы для каждой категории были определенные опции. Ð_то все понятно, создается таблица для опций, каждой опции присваивается ид категории. Но вот как быть если хочется чтобы одна опация была доступна в разных категориях? Мне на ум пришел только один вариант, хранить все ид категорий в одном поле и разделять их каким-то символом, но в этом случае затрудняется выборка нужных записей. Также можно для каждой категории создавать копии записей опций, но этот вариант требует усилий по программированию при присваивании опций.
Пока все это писал пришла еще идея, связывать катигорию при помощи отдельной таблицы, где хранить ид опции - ид категории, думаю то что нужно .
Может у кого-нибудь есть еще идеи по этому поводу?
__________________
Всегда есть решение.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
05-01-2003 13:51 |
|
|
STFW
|
| Не совсем понял о чем речь, но рискну предположить... |
[сооб. #30504]
07-01-2003 00:26 |
|
STFW


Зарегистрирован: Jul 2002
Место проживания: Кольский п-ов
Публикаций: 305
Статус:  |
Не совсем понял о чем речь, но рискну предположить что тебе требуется всего лишь создать поле с набором того что тебе нужно.... Тип такого поля в MySQL называется ENUM или SET. Отличаются возможностью установки количества значений (SET одно из набора, ENUM несколько из набора)
Я например так храню статус пользателей. Для каждого пользователя определяется один идентификатор(просто строка) статуса, а возможные варианты статуса хранятся прямо в типе поля..
__________________
FAQ OFF
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
07-01-2003 00:26 |
|
|
Администратор
|
| SCHIZO точно не понял, блин трудно такое объяснить... |
[сооб. #30508]
07-01-2003 00:41 |
|
Администратор


Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус:  |
SCHIZO точно не понял, блин трудно такое объяснить .
ЫУЕ не подходит, там должно хранится ид нескольких категорий. ENUM тоже не пожходит так как оно может хранит до 50 значений а если категорий больше и как быть при добавлении удалении категорий. Ð_то отпадает однозначно.
Смотри, имеем например таблицу, где хранятся данные о нужных для заполнения полях при добавлении элемента в категорию, таблица содержит следующие данные:
марка
цвет
размер
Теперь имеем таблицу с категориями которая содержит данные
Автомобили
Ð_убашки
Трусы
Теперь нам нужно привязать отдельные поля к категориям.
Например:
Автомобили - Марка, цвет
Ð_убашки - Ð_азмер, цвет
трусы - размер
отсюда: к Ð_азмер нам нужно привязать две категории рубашки и трусы, к цвет тоже две (автомобили и рубашки) и соответсвенно к марка нужно привязать автомобили. Вот теперь представь что категорий тысяча.
__________________
Всегда есть решение.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
07-01-2003 00:41 |
|
|
STFW
|
Вроде понял...
Тогда в чем проблема?
Например..
таблица... |
[сооб. #30513]
07-01-2003 01:47 |
|
STFW


Зарегистрирован: Jul 2002
Место проживания: Кольский п-ов
Публикаций: 305
Статус:  |
Вроде понял...
Тогда в чем проблема?
Например..
таблица "машины":
ид_машины|машина|ид_цвета|иÐ
´_марки|....
таблица "цвета"
ид_цвета|цвет
таблица "марки"
ид_марки|марка
SELECT и прочее делаешь с JOIN || LEFTJOIN объединяя нужные тебе поля из разных таблиц и получаешь в результате обобщенные данные
Опять пример из практики: у меня данные о пользователях хранятся в трех таблицах: авторизация, данные, ники(разрешено иметь три ника)
чтобы выбрать ВСЕ о пользователе я делаю запрос объединяя эти три таблицы. Причем пользователь не заполнивший дополнительную инву будет отсутсвовать в таблице с данными. Связываю по uid(идентификатор пользователя)
__________________
FAQ OFF
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
07-01-2003 01:47 |
|
|
Администратор
|
| брр, как это таблица машины? машины это категория,... |
[сооб. #30536]
07-01-2003 07:06 |
|
Администратор


Зарегистрирован: May 2001
Место проживания:
Публикаций: 4642
Статус:  |
брр, как это таблица машины? машины это категория, но если ты говоришь про то как хранить данные то это не проблема. Ну да ладно забудь, я думаю единственное приемлимое решение здесь так как говорил выше:
quote: связывать катигорию и опции при помощи отдельной таблицы, где хранить ид опции - ид категории
__________________
Всегда есть решение.
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
07-01-2003 07:06 |
|
|
STFW
|
все почти так как ты говоришь...
представь... |
[сооб. #30540]
07-01-2003 07:57 |
|
STFW


Зарегистрирован: Jul 2002
Место проживания: Кольский п-ов
Публикаций: 305
Статус:  |
все почти так как ты говоришь...
представь что таблица "машины" это список вариантов этих машин..
в итоговую таблицу ты пишешь не поле "машина" а "ид_машины". По этому ид можно получить полную информацию о том какого она цвета, марки и тд.
P.S.
поищи инфу по теме "набор стандартов проектирования данных" или "четвертая и пятая формы нормализации"
__________________
FAQ OFF
Сообщить модератору об этом сообщении | Предупреждение | IP: определен
|
07-01-2003 07:57 |
|
|
|
Формат времени GMT. Текущее время 11:33.
|
Правила форума:
Вы не можете создавать новые темы.
Вы не можете отвечать на существующие темы.
Вы не можете прикреплять файлы.
Вы не можете редактировать свои сообщения. |
HTML теги выкл.
Спец. код вкл.
Смайлики вкл.
[IMG] тег выкл.
|
|
|
|
| |
Page generated in 0.00857306 seconds (45.70% PHP - 54.30% MySQL) with 26 queries.
|
 |