Hi Ken, Your proposed structure for the joining table (many-to-many relationship) with additional attributes is exactly how I would approach it. I have only worked with that model in CakePHP once, and it was many years ago. I wouldn't be surprised though if the framework does not provide a way to generate it via scaffold, and you need to set it up manually. I think Cake builds the many-to-many model via belongsToMany(). There are some notes in the documentation on how to use the 'through' attribute to deal with extra conditions in the join table: https://book.cakephp.org/3.0/en/orm/associations.html#using-the-through-option
I'm sorry I can't help too specifically with CakePHP, but the student <--> course | days_attended | grade model in the documentation example seems similar to your model. Good luck, -- ++++++++++++++++++++ Michael Berkowski University of Minnesota Libraries [email protected] 612.626.6137 PGP Public Key: http://z.umn.edu/mjbpubkey ++++++++++++++++++++ On Wed, 31 May 2017, Ken Irwin said: > Hi folks, > > TL;DR: when you have a database table whose whole job is to contain pairs of > keys connecting ID's of related tables, what if you want to say more about > that relationship (e.g. a time-frame in which that relationship existed)? I'm > particularly working in a Rails-like CakePHP context. > > My particular case: > > I'm working on a database project with a faculty member who's interested in > certain women who were associated with particular convents once upon a time. > > Our prototype database has tables for > > Women > -id > -name > -birth > -death > -etc > > Convents > -id > -name > -location > -etc > > Convents_Women > -woman_id > -convent_id > > I'm working in CakePHP, which has a Rails-like db structure, and this is how > it likes to handle relationships. > > What I'm wondering is this: if there is other information about a > relationship other than that it exists (e.g. the dates during which a person > was at a convent; what their role was during that time, etc), is there a > preferred / customary way of representing that? I had imagined that the > convents_women table might look like: > > -woman_id > -convent_id > -role > -start_date > -end_date > > But the Cake/Rails scaffolding system doesn't seem to have a way of working > with that. Or at least I haven't found the magic words to find a good > explanation. > > I could, I imagine, subsequently add table fields to convents_women; but I > wonder where we'd want to add that information in a generic application > scaffold, or would I have to build some cockamamie extra view? > > I'd welcome any thoughts on the matter. I'd also be delighted to hear from > other folks who are using CakePHP. I'm very new to it. > > Thanks > Ken
signature.asc
Description: PGP signature
