И Эмилио (llemilio) wrote,
И Эмилио
llemilio

Category:
  • Music:

№201 – Концептуальный вопрос

Есть некая иерархия объектов:


В базе данных она может быть представлена следующим образом:
 object_ID   object_name   parent_ID 
 1  Root object  1
 2  Middle object  1
 3  Middle object  1
 4  Middle object  1
 5  Simple object  2
 6  Simple object  2


Есть еще некая таблица свойств объектов:
 property_ID   object_ID   property_name   property_value 
 1  1  Layout  Oval
 2  2  Color  Blue
 3  3  Color  Red
 4  6  Serial number  111-23456


По затее разработчиков, все свойства родительского объекта переносятся на дочерние. В связи с этим возникает вопрос: А как наиболее оптимально это реализовать?

Есть несколько предположений, но ни одно из них по-моему не подходит:

  • Добавить в описании объекта дополнительное [текстовое] поле, в котором будут перечислены все предки объекта, например для объекта 2 оно будет иметь значение "<1>", а для объекта 5 значение будет уже "<1><3>". С этим вариантом запросы примут угрожающе нечитаемый характер, да и производительность будет не на высоте!

  • Задавть все свойства объекта явным образом, т.е. если для корневого объекта указано свойство "Color:Red", то это же свойство дублируется отдельными строками для всех дочерних объектов. Этот вариант наиболее приятен, но явно будет занимать кучу места и бессмысленно увеличивать размер и так немаленькой БД

  • Написать целую серию хранимых процедур и представлений для решения этого вопроса. Мало применим в силу своей малой универсальности



А как бы это сделали вы?
Subscribe

  • №621 — Заполоним улицы добротой

    Хочу научиться зеркально трансформировать свои чувства и действия: из гнева в радость, из ненависти в любовь, из хитрости в искренность, из заумности…

  • №619 — Не хватает опыта

    Решил что-нибудь написать сюда чтобы отодвинуть чутка предыдущую запись с голой задницей. А то как-то некультурно получается: незнакомый человек…

  • №618 — Аюрведа, или после большой паузы пост

    Картинка мотивационная, как полагается! Для тех кто дочитает до конца сей трактат, будет еще одна с видом спереди ) Жизнь моя в последнее время…

  • Post a new comment

    Error

    default userpic

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 46 comments

  • №621 — Заполоним улицы добротой

    Хочу научиться зеркально трансформировать свои чувства и действия: из гнева в радость, из ненависти в любовь, из хитрости в искренность, из заумности…

  • №619 — Не хватает опыта

    Решил что-нибудь написать сюда чтобы отодвинуть чутка предыдущую запись с голой задницей. А то как-то некультурно получается: незнакомый человек…

  • №618 — Аюрведа, или после большой паузы пост

    Картинка мотивационная, как полагается! Для тех кто дочитает до конца сей трактат, будет еще одна с видом спереди ) Жизнь моя в последнее время…