On Aug 25, 2007, at 9:39 AM, Jess Robinson wrote:
On Wed, 22 Aug 2007, Paul Makepeace wrote:
I have a standard has_many linking multiple groups profiles to a
particular user,
My::Schema::User->has_many(user_profile => 'My:Schema::UserProfile',
{ 'foreign.user_uid' => 'self.uid', } );
UserProfile is the link class ("join") table: user_uid, profile_uid
I'd like to be able to set a bunch of profile_uids and have the ORM
sort out which need deletion and creation. Is this possible?
I'm not missing something am I? My code does the equivalent of this:
$user->user_profiles->delete;
$user->create_realted('user_profiles', {profile_id => $_}) for
@profiles;
That's initially how I did it too, then I ran into problems when
updating a big list where most of the profiles were already there,
and deleting then recreating them all fired a bunch of triggers and
generally polluted the database with old rows, causing the vacuuming
to take place a lot more frequently. That was the point where I
rewrote it to the version I posted a couple of days ago, which only
deletes entries that need to be deleted, and saves the database a lot
of work.
I looked in the cookbook and there's examples on building the
relationships ({has,many_to}_many) but not much (anything?) on using
them.
::Manual::Joining should have this sorta stuff in, but may not yet.
The code I posted a couple of days ago works pretty well for the
common case, feel free to stuff it into the manual wherever it seems
to fit...
--
Jason Kohles
[EMAIL PROTECTED]
http://www.jasonkohles.com/
"A witty saying proves nothing." -- Voltaire
_______________________________________________
List: http://lists.rawmode.org/cgi-bin/mailman/listinfo/dbix-class
IRC: irc.perl.org#dbix-class
SVN: http://dev.catalyst.perl.org/repos/bast/DBIx-Class/
Searchable Archive: http://www.grokbase.com/group/[EMAIL PROTECTED]