I am trying to decide how to structure my image galleries for easy management by the users (users submit, organize and own their content). There are two approaches that I see along with some pros and cons:
1) One gallery is one node and images are in a multi-value ImageField inside that node.
PROS:
- Easy gallery editing, drag-and-drop reordering of images, etc. out of the box - no coding required.
- Referential integrity is enforced naturally - you delete the node and all images are deleted as part of it. No orphan images.
- Bulk uploads with Image FUpload work relatively well (see also cons)
CONS:
- The node edit page becomes less user-friendly when dealing with lots of images - the one-image-per-line interface is not good when you have 100 images for example. You need a grid for that!
- Bulk uploads with Image FUpload tends to break on large numbers of images as the post size becomes too big (upload_max_filesize and post_max_size parameters on the server are not editable on shared hosts)
- You cannot add a location (GMap + Location) to each image - you can only do that on gallery level
2) One node for the gallery and multiple single-image nodes linked to it in some of the available ways (e.g. nodereference/nodereferrer combination)
PROS:
- More freedom if you want to implement your own gallery edit page using grids, checkboxes, etc.
- Better control over display using additional fields, etc.
- You can define a location for each image
- Image FUpload has no problem with the post size as each node is submitted separately and image sizes cannot add up to exceed the post_max_size parameter
CONS:
- No easy way of enforcing cascade delete referential integrity. No module in Drupal supports that functionality. The only way to do it (without much custom coding) is through the Rules module but that just add complexity to the site and more modules means less speed.
- Bulk uploads with Image FUpload do not work quite well. The upload actually works but currently there is no way to redirect back to the main gallery node after uploading is done.
These I figured myself by trial and error (feel free to add more) but I am lost when it comes to performance ;-( Do you have any experience comparing the performance of the two methods? If you have hundreds of users, each having tens of galleries, which will be the preferred way when it comes to speed?