Well, not really, you just need one images table for that.

Then in your models you just have an image_id, and set your
associations up like this:

class Shop extends AppModel {

        var $belongsTo = array(
                'Image' => array('className' => 'Image', 'foreignKey' => 
'image_id')
        );

}

class Album extends AppModel {

        var $belongsTo = array(
                'Image' => array('className' => 'Image', 'foreignKey' => 
'image_id')
        );

}



If you need more than one image associated, then just use a habtm
association and create a join table!

I've been using this method for over a year and a half and I've never
thought about doing it any other way.

Cheers,
Adam

On Nov 8, 9:29 am, Marcus Silva <[EMAIL PROTECTED]> wrote:
> That does help Adam.  Thats exactly the way I will do it now.
>
> But I think I will end up with many tables which is what really puts
> me off.  But thats not a problem.
>
> Should have ShopImage, AlbumImage ProfileImage and so on...
>
> Many thanks to all for helping out.
>
> Cheers
>
> On Nov 7, 10:42 pm, Adam Royle <[EMAIL PROTECTED]> wrote:
>
> > The way I do this:
>
> > Tables:
> > - images
> > - videos
> > - documents
>
> > Each of the tables has the standard fields like mime_type, filesize,
> > path, etc. And each custom type has any extra fields that may be
> > necessary (width, height, duration, bitrate, etc).
>
> > Behaviors:
> > - FileBehavior
> > - ImageBehavior extends FileBehavior
> > - VideoBehavior extends FileBehavior
>
> > The reason I split into multiple tables is for associations. Often I
> > want to control what media types are associated with my models. Eg. I
> > might want a model to have many images but just one video. Plus, this
> > prevents you from having to constantly check the media type if you're
> > iterating through one array with multiple media types.
>
> > Hope that helps.
>
> > Cheers,
> > Adam
>
> > On Nov 8, 3:06 am, Marcus Silva <[EMAIL PROTECTED]> wrote:
>
> > > Hi folks,
>
> > > I am trying to create system which will let users upload media to the
> > > server,  the question that I ask is weather using a single table to
> > > store the uploaded files is better than using separate tables to store
> > > each file type in terms of coding.
>
> > > Seems to me that if I use the multiple table I will be creating
> > > exactly the same data, but in a different table.
>
> > > Example:  audios,videos,images etc....
>
> > > My table structure:
>
> > > CREATE TABLE `uploaded_files` (
> > >   `id` int(11) unsigned NOT NULL auto_increment,
> > >   `foreign_id` int(10) unsigned NOT NULL,
> > >   `model` varchar(255) NOT NULL COMMENT 'Associated model name',
> > >   `media` varchar(55) NOT NULL,
> > >   `filename` varchar(255) default NULL,
> > >   `ext` varchar(10) default NULL,
> > >   `mime` varchar(55) default NULL,
> > >   `filesize` int(11) NOT NULL,
> > >   `webpath` varchar(255) NOT NULL COMMENT 'Web path to show file',
> > >   `full_path` text NOT NULL COMMENT 'Full path to file_src',
> > >   `hasThumb` tinyint(1) unsigned NOT NULL,
> > >   `thumbs` text,
> > >   `width` int(11) default NULL,
> > >   `height` int(11) default NULL,
> > >   `description` varchar(155) default NULL,
> > >   `created` datetime default NULL,
> > >   `updated` datetime default NULL,
> > >   PRIMARY KEY  (`id`)
> > > ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;
>
> > > Basically, I am looking for an easy solution that will reduce the
> > > amount of code I write....
>
> > > Hope some of you guys can help.
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to cake-php@googlegroups.com
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/cake-php?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to