Хороший дизайн для сохранения объекта домена JPA - PullRequest
0 голосов
/ 24 декабря 2009

У меня есть объект домена, в котором хранятся некоторые метаданные и некоторые необработанные байты. Это используется для хранения бинарных объектов, таких как документы PDF и изображения.

Я хотел бы сохранить метаданные в базе данных, чтобы их можно было легко запрашивать, но я хочу сохранить необработанные байты в файловой системе по соображениям производительности. Каков хороший дизайн для достижения этого?

Должен ли я иметь объект домена, представляющий необработанные байты, со своим собственным DAO для выполнения CRUD и отдельным JPA DAO для того же для метаданных?

Если это так, будет ли объект домена для метаданных содержать ссылку на необработанный объект байта, который помечен как временный, чтобы JPA не пытался его сохранить?

Я придерживаюсь слишком сложной схемы, чтобы получить небольшую выгоду от хранения необработанных байтов в базе данных? Я использую PostgreSQL 8.x, если это имеет значение.

Большое спасибо.

1 Ответ

1 голос
/ 24 декабря 2009

Я бы не стал этого делать. Вы измерили предполагаемый удар по производительности? Как вы собираетесь поддерживать транзакционность между вашими данными в базе данных и вашими данными в файловой системе. например Собираетесь ли вы записать в файловую систему, записать в БД, и если это не удастся, откатите изменения вашей файловой системы (что не так просто, как простое удаление файла - у вас есть предыдущая версия двоичных данных?) Как вы управляете резервным копированием баз данных и т. Д. И поддерживаете все в синхронизации? Я настоятельно рекомендую хранить все данные в одном месте.

Поскольку вы говорите о хранении файлов PDF и т. П., Возможно, вам нужна система управления документами ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...