Идея объектно-реляционного несоответствия проистекает из проблем, которые возникают, когда вы пытаетесь использовать подход объектно-ориентированного программирования, опирающийся на реляционную базу данных. Проблема возникает из-за того, что объектные модели обычно содержат иерархии объектов, которые необходимо разбивать на части и перестраивать из нескольких таблиц, а не хранить объект в целом.
Тем не менее, аргумент, который обычно возникает в этой точке, заключается в том, что если вы не нашли проблему, то это ваша вина, потому что вы не выполняете «правильную» объектную ориентацию, и что вы найдете несоответствие, когда Вы учитесь правильно ориентировать объектную ориентацию. И все мы знаем, что объектная ориентация является единственной «правильной» парадигмой развития.
Ой, подождите.
Многие системы не подходят для моделирования в виде объектно-ориентированных систем. Фактически, для таких вещей, как веб-приложения, которые обычно имеют низкую сложность (с локализованной высокой сложностью) и требуют высокой степени параллелизма и масштабируемости, использование сервис-ориентированных методов и методов передачи сообщений может быть лучшим вариантом. Когда приложение написано таким образом, вы, как правило, обнаруживаете, что несоответствия между объектами не слишком много, потому что вы не используете такие вещи, как отложенная загрузка и сложные иерархии объектов, а ваши объекты неизменны, поэтому они не необходимо уничтожить обратно в базу данных.
Так есть ли объектно-реляционное несоответствие? Да, если вы попытаетесь использовать объектно-ориентированные методы с реляционной базой данных. Но вы можете уменьшить его, не используя объектно-ориентированные методы, если другие подходы лучше подходят для вашего приложения.