Concept for modeling hierarchical data 2005-12-11 - By Tim Wood
Back At 05:28 AM 12/11/05, Florian Lindner wrote: >Hello, >I'm searching for the best concept of how to use and save hierarchical data. >I have a structure like PC file system with meta data. There a folders and >files of different types. Every object have data like permissions, date and >author. And they have type-specific data fields like resolution (of an image >type) or location (of an meeting type) or ingredients (of an recipe type). >What is the best way to store that kind of data? What database is >recommendable? What concepts of persistance? Or not using managed persistance >and do it manually?
Florian, These are all important questions, but they cover different levels. Start with a clear data model, expressed in entity-relation form. Make sure you capture the major object types and all their attributes. Err on the side of high normalization, creating joining tables to tie objects that can be combined arbitrarily. In the classic personnel schema, you could have an Employee table , a Manager table and a ManagerReport table to express each manager's reports. (Managers are employees too, so the model must reflect that, etc.) Make sure you can support the major use cases with the data model, and allow flexibility for future ones.
Once you understand the data model, you have choices for expressing it. The Hibernate object-relational package is powerful and quite mature. You can map objects directly to tables or in v3 you can map them to stored procedure invocations. This allowing you to leverage more of the DBMS functionality, possibly at a cost of some DBMS independence, since stored procedure behavior can vary. In particular, you can put most of the transaction responsibility in the stored procedures instead of managing it in code with JTA or using the container (app. server) features. In conjunction with good index declarations, this can produce a system that is quite fast.
Just some thoughts out of my experience.
HTH, TW
=========================================================================== To unsubscribe, send email to listserv@(protected) and include in the body of the message "signoff J2EE-INTEREST". For general help, send email to listserv@(protected) and include in the body of the message "help".
|
|