1

I need to create some user submission forms, and I'm debating the merits of using a custom content type Fields API forms, or a custom module form like the ones in Examples module.

As I understand it, Fields API forms will create a new node for each submission. These forms will have hundreds of submissions every day all year long, and this will create a lot of nodes. I am wondering if this would present a problem in terms of database performance, and site management.

  • Welcome to Drupal Answers. People here gain reputation by answering questions and earn additional capabilities on the site. If you like an answer to your question give it an up vote. If you think it answers your question, give it a check. – Ashlar Feb 3 '12 at 3:45
  • I guess I don't have the reputation to do that yet. – hclayton Feb 3 '12 at 4:14
1

Generally, the bigger the database the potentially slower it can get. If you get 200 nodes submitted every day that's 73,000 nodes a year. A lot of news sites or forums or w/e that run on Drupal easily surpass numbers like that.

You can use the Form API to capture content in a custom table of your creation, there's absolutely nothing wrong with that. If you need everything that comes along with nodes, fields, contrib modules that plug into nodes, etc., than you may want to just use nodes. Then there's the ability in D7 to just create a custom fieldable entity (not a node but "like" a node in that it's a piece of content that Views and other things can hook into) and save overhead by keeping things lean.

  • I've got a Forms API form with custom table working. Is there any way for Views to tap into these custom tables? Do you know a good place to read up more on Drupal 7's node-like custom field entities? That looks attractive because I'm also trying to get a field from the barcode module into my form, & am still trying to figure out how to do that in the Forms API custom module form I've created. Thanks for your response. – hclayton Feb 2 '12 at 22:50
  • Whether you'd use fields on nodes, or create your own entity type and then field it, would depend on the use-case. Fields end up being a lot of joins and separate tables in the DB. If for whatever reason you need the DB to be flat (one table for the content type), then an entity might be your solution. Otherwise, if it works, it works. :-) Not sure what you mean by 'custom' table, but if it's your own code you can implement the views api and have it appear in the views system. hth. – paul-m Feb 4 '12 at 19:32
  • If you use the Entity API module (drupal.org/project/entity) and describe your custom entity properly, it will automatically be available to Views. Check out this link for a great example of creating a custom entity in Drupal 7: trellon.com/content/blog/creating-own-entities-entity-api – Charlie Schliesser Mar 5 '12 at 15:10

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.