есть у меня ощуение что всё дело просто в моей ДНК, но надеюсь что избраный мною путь не совсем провален. И так. есть таблица товаров со всеми св-вами. Список св-в с указанием типа поля хранится в отдельной таблице. Существует такой тип поля как словарь. т.е. в тбл товара хранится не само св-во(малиновый, красный, чёрный), а номер соответствующего элемента в таблице словаря. ах, да и ещё есть таблица(или массив, есть и то и другое) где храняться именна таблиц словарей. надо как-то всё это увязать. чую надо копать в сторону джоинов, но плохо понимаю как именно копать=( и кажеться у мну структура кривая, где есть дыра....
Если связь один-к-одному (один товар, один цвет), то как-то так: [sql]select * from товар, цвет where товар.id = цвет.id[/sql] или так [sql]select * from товар left join цвет on (товар.id = цвет.id)[/sql] Где товар.id это поле id в таблице товар, цвет.id - поле id в таблице цвет. Первый пример это inner join (запятая в from синоним inner join): [sql]select * from товар inner join цвет on (товар.id = цвет.id)[/sql] left join имеет плюс в том, что если цвет у товара не будет указан, то товар всё равно будет выбран. А другие join`ы товар с пустым цветом проигнорируют.
спасибо, это я как раз более менее понял=) мне вот интересно как правильно понять что этот тип поля является словарём? вот наверно наиболее правильно задать вопрос так. Т.е. есть-ли у мускула что-либо что позволит связать как-то поле и словарь, или хотя бы даст знать что это поле является словарным. Добавлять префикс к названию поля и парсить в пхп - не выход - слишком ресурсоёмко... извините если криво описываю=) UPD может ENUM меня спасёт?
допустим есть таблица - telefon с полями - id, name, brand, internet, scren_colors, co_src, color и т.д. в сегоднящних наших магазинов количество св-в приближается к 100. scren_colors и co_src являются словарными. а, остальные вводятся ручками. и таких таблиц например штук 5-10. в каждой по 1000 позиций. вот где-то так. как именно заставить мускул реагировать на определённую колонку(по префиксу, или они будут перечислены строкой в запросе. есть таблица в которой хранится тип название и тип поля так что вычленить можно) обращаться к словарю и заменять цифирку на занчене из словаря. ЗЫ мне начинает казаться что такими за мороками вся экономичность использование словарей сводиться на нет=(( а ведь там такие возможности открываются... рейтинги товаров по наличию определённых характеристик и тд.....
решил не заводить новый топик. кто знает как толком пользоваться foreign key? теми которые устанавливаются при создании таблице? они вообще в масе работают?!