I would write a module with his own content types and relations (Recipe Database). Now I can create my own schema or new content types with several fields. Which is the better way for Drupal 7?

Later, the module should easy integrate to other contributed modules (fivestar, views,...).