За последние 24 часа нас посетили 50836 программистов и 1745 роботов. Сейчас ищут 926 программистов ...

Как осуществить наследование таблиц в MySQL?

Тема в разделе "PHP и базы данных", создана пользователем steel_mx, 8 июл 2015.

  1. steel_mx

    steel_mx Новичок

    С нами с:
    30 май 2015
    Сообщения:
    10
    Симпатии:
    0
    Пример. Агентство Недвижимости.
    -Есть ряд свойств которые присутствуют у ВСЕХ объектов (цена, адрес).
    -Есть ряд св-в, которые присутствуют у объектов АРЕНДЫ/ПРОДАЖИ.
    -Есть ряд свойств, принадлежащих СООТВЕТСТВУЮЩИМ ОБЪЕКТАМ (квартирам, домам, etc).
    Если есть три таблицы base, rent, rent_apartment то как реализовать(/или эффективно реализовать) их наследование (подобно ООП классам)?
    Т.к. мы не знаем какому именно "классу" соответствует объект находящийся в таблице base, нужно сначала прочитать поле "object_type". Т.е нужно делать подзапрос. Сколько уровней наследования - столько подзапросов. Соответственно вопрос: как правильно/эффективно осуществлять наследование таблиц? Может есть какие-то встроенные средства в самой MySQL.
    P.S. Кстати говоря, наследование таблиц появилось еще в SQL99
     
  2. runcore

    runcore Старожил

    С нами с:
    12 окт 2012
    Сообщения:
    3.625
    Симпатии:
    158
    выделяем отдельные сущности, и храним их в отдельных таблицах. связываем между собой через ключи. вот и все наследование)
     
  3. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.128
    Симпатии:
    1.248
    Адрес:
    там-сям
    Есть разные стратегии отображения классов на базу.
    http://www.ibm.com/developerworks/library/ws-mapping-to-rdb/#h4
    Например, если отображать все классы на одну таблицу с полным набором атрибутов, то запросы становятся белыми и пушистыми.
     
  4. steel_mx

    steel_mx Новичок

    С нами с:
    30 май 2015
    Сообщения:
    10
    Симпатии:
    0
    То же хороший вариант