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 [email protected]
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
-~----------~----~----~----~------~----~------~--~---