Joseph,

How to model/map files (with their content) e.g. in webapplications?
What is the best practice?
(1) To put their content as blob fully in the DB plus fields for properties,
or
(2) to put the metadata about files only in the DB and the content
  in a file system?
or
(3) other solution?

The second one seems to be the most efficient, but than the entire transaction
support is lost :(.

What's the best solution with Cayenne?

A lot of people have this question when investigating the current state of technology. My opinion is based on the last time I investigated the same options. With the new databases as well as Cayenne you could certainly manage BLOB's via the database. The problem is not the storage issue, it is the usage issue once you retrieve the object. The web languages are much more friendly to file system references and less friendly to blob references. It can be done (and I have done it), but it is not pretty. :)

My preference (and it seems to be fairly efficient), is to continue with the standard design pattern of storing metadata (file-path, etc) in the database and storing the file in the filesystem. You can them make programatic references much easier.

The second one seems to be the most efficient, but than the entire transaction support is lost :(.

Not sure what you mean by "transaction support", so I can't comment on this.

If you have special needs for your users, then the best course of action is to build a end-to-end test with a simple representative object, and see for yourself which way works for you.

Joe


Reply via email to