За последние 24 часа нас посетил 20621 программист и 1826 роботов. Сейчас ищут 1020 программистов ...

словари св-в товара

Тема в разделе "MySQL", создана пользователем GudGuy, 12 авг 2008.

  1. GudGuy

    GudGuy Активный пользователь

    С нами с:
    14 июн 2007
    Сообщения:
    909
    Симпатии:
    0
    Адрес:
    Москва
    есть у меня ощуение что всё дело просто в моей ДНК, но надеюсь что избраный мною путь не совсем провален.
    И так. есть таблица товаров со всеми св-вами. Список св-в с указанием типа поля хранится в отдельной таблице. Существует такой тип поля как словарь. т.е. в тбл товара хранится не само св-во(малиновый, красный, чёрный), а номер соответствующего элемента в таблице словаря. ах, да и ещё есть таблица(или массив, есть и то и другое) где храняться именна таблиц словарей. надо как-то всё это увязать. чую надо копать в сторону джоинов, но плохо понимаю как именно копать=(
    и кажеться у мну структура кривая, где есть дыра....
     
  2. lexa

    lexa Активный пользователь

    С нами с:
    22 июл 2007
    Сообщения:
    1.746
    Симпатии:
    0
    Адрес:
    Санкт-Петербург
    Если связь один-к-одному (один товар, один цвет), то как-то так:
    [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`ы товар с пустым цветом проигнорируют.
     
  3. GudGuy

    GudGuy Активный пользователь

    С нами с:
    14 июн 2007
    Сообщения:
    909
    Симпатии:
    0
    Адрес:
    Москва
    спасибо, это я как раз более менее понял=)
    мне вот интересно как правильно понять что этот тип поля является словарём? вот наверно наиболее правильно задать вопрос так. Т.е. есть-ли у мускула что-либо что позволит связать как-то поле и словарь, или хотя бы даст знать что это поле является словарным. Добавлять префикс к названию поля и парсить в пхп - не выход - слишком ресурсоёмко...
    извините если криво описываю=)

    UPD может ENUM меня спасёт?
     
  4. decoder

    decoder Активный пользователь

    С нами с:
    11 фев 2006
    Сообщения:
    469
    Симпатии:
    0
    А названия поля недостаточно? О_о
    В крайнем случае можешь свой синоним для поля задать...
     
  5. GudGuy

    GudGuy Активный пользователь

    С нами с:
    14 июн 2007
    Сообщения:
    909
    Симпатии:
    0
    Адрес:
    Москва
    допустим есть таблица - telefon с полями - id, name, brand, internet, scren_colors, co_src, color и т.д. в сегоднящних наших магазинов количество св-в приближается к 100. scren_colors и co_src являются словарными. а, остальные вводятся ручками. и таких таблиц например штук 5-10. в каждой по 1000 позиций.
    вот где-то так.
    как именно заставить мускул реагировать на определённую колонку(по префиксу, или они будут перечислены строкой в запросе. есть таблица в которой хранится тип название и тип поля так что вычленить можно) обращаться к словарю и заменять цифирку на занчене из словаря.
    ЗЫ мне начинает казаться что такими за мороками вся экономичность использование словарей сводиться на нет=(( а ведь там такие возможности открываются... рейтинги товаров по наличию определённых характеристик и тд.....
     
  6. GudGuy

    GudGuy Активный пользователь

    С нами с:
    14 июн 2007
    Сообщения:
    909
    Симпатии:
    0
    Адрес:
    Москва
    решил не заводить новый топик.
    кто знает как толком пользоваться foreign key? теми которые устанавливаются при создании таблице? они вообще в масе работают?!