matthew couchman (JIC) wrote:
Hi,

I’m getting the warning:

"might_have/has_one" must not be on columns with is_nullable set to true. This might indicate an incorrect use of those relationship helpers instead of belongs_to.

and the documentation also tells me that this is naughty. But surely by saying that something /might/ have something it implies that it also might /not/ have that something so it needs to be a nullable value. Do I just need to specify it in a different way?


might_have/has_one are *equivalent* to has_many, they just have different
return expectancy (belongs_to is the opposite relationship to all 3).

Imagine tables
CRASH_REPORT (id INTEGER, report TEXT)
DUI_REPORT (id INTEGER, report TEXT, crash_report_fk INTEGER IS NULL)

then CRASH_REPORT->might_have (dui_rep => DUI_REPORT...)
and DUI_REPORT->belongs_to (crash_rep => CRASH_REPORT ... { join_type => 'left' 
})

indicating that a crash may have an accompanying DUI, and a DUI may be filed
under a crash or standalone.

belongs_to is the only relationship allowed on the "I have a column
dedicated to hold someone else's id" side. Patches to make the documentation
clearer on this point sorely needed.

Cheers!

_______________________________________________
List: http://lists.scsys.co.uk/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]

Reply via email to