I am building a Drupal 7 platform where users can share images. In a nutshell, people should be able to comment on images and like them.
The way I realized this is by creating a custom content type called "image" and adding an image field to it. And then I grant users the permission to create "image" nodes.
However, yesterday I came across this Drupal 6 article http://drupal.org/node/325688 and it's section 'Images as nodes'. It introduces the Image module, which lets you upload images as nodes automatically. Unfortunately, the Image module hasn't been ported to Drupal 7.
Is this the clean way to implement images?
The article also mentions the solution that I made use of:
For example, using Imagefield, you could create a custom content type that contains one CCK imagefield, and configure that field to "contain" (refer to) only a single file. However, note that this custom CCK node type would not be compatible with Image module or its add-ons, and should be named something other than "Image" to avoid confusion.
Is there any point in not naming your custom content type "image"? I mean, it would be a super suggestive name. And the Image module which would provide a content type with the same name will most likely never be ported to Drupal 7. So there should never be confusion.
Lastly, the article mentions that
It is theoretically possible that, for sites with lots (say hundreds of thousands) of images, storing them all as individual nodes could result in a performance hit from the extra database overhead.
Well, storing lots of images is exactly what image sharing platforms are aiming at, isn't it? Is there a better way (in terms of performance) to store images in Drupal 7 while still making it possible for people to comment on them?
The image module does not exist in Drupal 7 because this functionality is added to Drupal 7 core.
Implementing images as nodes was a clean way to do this in Drupal 7. You may still do this in Drupal 7. However, Drupal 7 has gone a long way and offers the entity alternative. At Drupal 6 'everything can be a node'. At Drupal 7, 'everything can be an entity'.
Nodes were meant to be used for publishing text. They come with a lot of functionality that you may find redundant in your use case. All this extra functionality can slow down your site if you have thousands or millions of entries.
I am not sure I understand why you should not do this. It was probably a suggestion and module specific. In Drupal 7 you can name your content type anything you want.
As I told you before, using entities for storing images is a better alternative, as far as the performance is concerned. But then you should implement your own method of commenting.
EDIT: In Drupal 8 there is some advances made in decoupling the comment module from node. See this issue.