Hi,

This is my first post so Hello everyone !

I'm pretty new on drupal and i'm looking for help for the project described below.
Please excuse my poor english, i'm french!

The project is about poestry in France in the sixteenth century...

The idea is to build up a database of authors, books published, editions of the books published, poems in each editions and also other authors they are talking too in their poems.
I have a picture of the relations in this database but as a quick view it looks like this

The Database

Authors / Books / Editions

  • Jim -> Book 1 -> Edition 1
  • -> Edition 2
  • -> Book 2 -> Edition 3
  • -> Edition 4
  • Bob -> Book 3 -> Edition 5

Authors / Poems / Editions

  • Jim -> Poem 1 Published in Edition 1, Edition 2, Edition 3
  • -> Poem 2 Published in Edition 5

Authors network

Jim speaks to Bob in Poem 1 published in Edition 1 and Edition 2
Jim speaks to Mike in Poem 2 published in Edition 5

Pretty hard to respresent that here but that's the idea...

In terms of Web pages that's pretty simple i'll need lists of Authors, Books, Editions and Poems

The Author Webpage

I'll also need a prettu complew author page which will look like this

General information block (name, date of birth, etc..)

Books published

(Which will need to display books en editions and links to books pages and/or editions pages)
In my example for the author Jim

  • Book 1 /Edition 1
  • Book 1 /Edition 2
  • Book 2 /Edition 3
  • Book 2 /Edition 4

Poems not in his own books

In my example

  • Poem 2 in Book 3 / Edition 5 / Author 2

Social network

Other authors talking to me
None in my example
Other authors i'm talking too
In my example : jim Speaks to Bob and Mike

That's the basic idea.. on top of that i'll need a few standard functionnalities such as user registrations, comments, etc...

Here are my questions :

  • Is drupal a good idea to do that ?
  • How would you modeliz thes relations. From what i've read i would need for 4 custom content types (authors, poems, books, editions). A few taxonomies to sort all these things. plus a module like Relations to modelize all these links. Any thoughts ?
  • Any other advices are welcome !!

Thanks in advance for your help !!

Pascal

Comments

charlied’s picture

I am not an expert but here are some ideas :

  • Yes I think you can do it with Drupal. Download a copy on your PC and Mac and start playing - start with building a view with exposed filters to query a list of books - its not hard.
  • I would draw an entity relationship diagram to ensure you have the data model clear in your mind. This will tease out the multiple relations which will involve the most work
  • As you say 4 separate custom content types. Use taxonomy terms for searchable attributes but dont overlook using simple text fields which can be searched using the Views Autocomplete Filter module (UI like google search autocomplete)
  • I found the Relations module very powerful (multiway named links etc) but the UI can be challenging. For one-to-many relations like Editions of a Book try the Entity relationship module - much simpler (again use views autocomplete filters)
  • For the pages showing relationships query the data using views, put these in blocks and then (for a no code solution) use the Panels module to assemble a page, linking the blocks together
  • Ignore look and feel until you are convinced you can store and retrieve the relationships you want using views, panels, entity relationships. Then make it pretty.
  • Drupal is a serious development tool with a great community and you can always write code (often surprisingly little) if you can't find what you want off the shelf. Its worth the investment in what can be a steep learning curve because you know that you are not on technological dead end as your site grows.

Good Luck !

Youps’s picture

Thanks Charlied for your reply and help,

i'm now playing with Drupal, building up entities and trying to make relations.
i'm surprised, it'as actually pretty easy for the moment ^^
maybe the difficult part will come after, we'll see !

I have to try that Panels module too...

Pascal