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 -~----------~----~----~----~------~----~------~--~---