Может быть спрошу глупость, но почему все современные реляционные БД имеют плоскую структуру в виде набора таблиц и набора отношений? Ну понятно, да, реляционность, вся фигня. Но ведь реляционность и объектность - не взаимоисключающие, а наоборот, взаимодополняющие свойства. Сейчас, в любой реляционной БД объектность приходится выстраивать руками. Ну например: table person: id, name table programmer: id (FK на person.id, отношение 1 к 1), specialization_id, ... table manager: id (FK на person.id, отношение 1 к 1), team_id, ... ХП создания программера: Код (Text): begin; insert into person (name) values ('Петя'); insert into programmer (id, specialization_id, ...) values (last_insert_id(), 5, ...); commit; Аналогично - манагера. Получается, что объектность есть только в голове БД-дизайнера, и никак не представлена в синтаксических конструкциях. О ней разве что можно догадаться по наличию FK constraints и свойствам PK / FK (auto increment, null, и т.д.). Есть ли какие-то более семантически и синтаксисчески богатые методы по работе с объектостями в БД? Но при этом так, чтобы это было без оверхеда - как будто все прописано руками. UPD: Прежде всего интересует MySQL.
Вообще-то Oracle вполне понимает тип "таблица объектов". Самый злобный ООП-ахтунг типа множественного наследования там, ессно, отсутствует, но традиционное наследование и полиморфизм - имеется.
_DEN_, для MySQL, мб, какие-нибудь приблуды есть. а если так нравится ооп - возьмите другую субд. для пущего гемора - ту же cache'. в ней и все ооп фичи, и sql запросы поддерживаются.
CyberManiac Ахтунга не надо, но как минимум надо полиморфные типы - чтобы programmer-ы и manager-ы могли быть получены единым списком как person-ы. simferty Если БД и буду менять, то скорее всего на оракл, и скорее всего - не скоро. Примерно тогда, когда буду большим и богатым, и настанет мир во всем мире.
_DEN_, для полиморфизма (по крайней мере на выборку) можно присобачить VIEW, в майскуле они вроде есть.
В общем, всем спасибо, я узнал что у меня есть огромная семья что нужно курить ORM и смежные им решения. Удаляюсь на обдумывание.