[Dbix-class] How to use DBIx::Class on a view

Nigel Metheringham nigel.metheringham at dev.intechnology.co.uk
Tue Nov 15 18:31:29 CET 2005


I would like to use DBIx::Class to access a view of a table -
specifically its a GROUP of a JOIN to aggregate a batch of per-user data
into a group summary (I'll post the actual SQL below so you can see what
I mean).

This view has no primary key, which may confuse things.

The view is certainly not picked up by DBIC::Loader - not too suprised
by that.

Can/should I wrap a ::Table based class around it, or do I need to do
other magic?

[BTW I am new to DBIx::Class - having played with CDBI a bit - I'm
finding the starting rather heavy going.  This is mostly being used with
a Catalyst app - the current Model code is very heavily based on the
example in http://dev.catalyst.perl.org/wiki/SolvedIssues#si.85 ]

The SQLite (test database - will shortly go PostgresQL) code for the
view is:-
    CREATE VIEW group_date_feature_map AS
        SELECT  date,
                bs_group,
                feature,
                count(*) AS count
        FROM user_date_feature_map
        JOIN bs_user
        ON user_date_feature_map.bs_user = bs_user.id
        GROUP BY date, bs_group, feature;

If it matters, the bs_group and feature columns are both references to
other tables.  My current database module has inflate/deflate overrides
for date fields which map them to a DateTime type.

Cheers
	Nigel.
-- 
[ Nigel Metheringham           Nigel.Metheringham at InTechnology.co.uk ]
[ - Comments in this message are my own and not ITO opinion/policy - ]





More information about the Dbix-class mailing list