X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=slideshow.html;fp=slideshow.html;h=d41949471cc0cec56e8afc014befb121e7e78918;hb=6548782ada04fcd087324240762a33445ca868cb;hp=8ae42cbd87380b19faf1af76d8c686812d174938;hpb=2a65778d918509ef65a90e8dd0b773610ab08557;p=dbsrgits%2Fdbix-class-introduction-presentation.git diff --git a/slideshow.html b/slideshow.html index 8ae42cb..d419494 100644 --- a/slideshow.html +++ b/slideshow.html @@ -598,47 +598,29 @@ sub new { 1;
-

relationships

+

Relationships

-

multiple authors

+

Multiple Authors

a few relationships

+ (really need picture here) (authors -- author_link_to_book -- books)
-

a few relationships

- ! -
- -
-

new join table

+

Join Table

CREATE TABLE author_and_books(
-  id      int(8)    primary key auto_increment,
-  book    int(8),
-  author  int(8),
-  foreign key (book)     references books(id),
-  foreign key (author)   references authors(id)
+  book_id    int(8),
+  author_id  int(8),
+  foreign key (book_id)     references books(id),
+  foreign key (author_id)   references authors(id)
 ) engine = InnoDB DEFAULT CHARSET=utf8;
 
-ALTER TABLE `books` DROP `author`
-
- -
-

new join table

-
CREATE TABLE author_and_books(
-  id      int(8)    primary key auto_increment,
-  book    int(8),
-  author  int(8),
-  foreign key (book)     references books(id),
-  foreign key (author)   references authors(id)
-) engine = InnoDB DEFAULT CHARSET=utf8;
-
-ALTER TABLE `books` DROP `author`
+ALTER TABLE `books` DROP `author`;
@@ -647,26 +629,11 @@ ALTER TABLE `books` DROP `author`

has_many

-
package Foo::Schema::Result::Books;
+
package Foo::Schema::Result::Book;
 
-__PACKAGE__->has_many( author_and_books => "Foo::Schema::Result::AuthorAndBooks",
-    { "foreign.book" => "self.id" },
+__PACKAGE__->has_many( author_and_books =>
+   'Foo::Schema::Result::Author_Book', 'book_id'
 );
-
-# This is auto generated by Schema::Loader
-
- -
-

has_many

-
package Foo::Schema::Result::Books;
-
-__PACKAGE__->has_many(
-author_and_books => # name of accessor
-"Foo::Schema::Result::AuthorAndBooks", # related class
-    { "foreign.book" => "self.id" } # Relationship (magic often works if not
-                                        # specified, but avoid!)
-);
-
@@ -675,12 +642,11 @@ author_and_books => # name of accessor

belongs_to

-
package Foo::Schema::Result::AuthorAndBooks;
+
package Foo::Schema::Result::Author_Book;
 
 __PACKAGE__->belongs_to(
-   book => # Accessor name
-   "Foo::Schema::Result::Books", # Related class
-   { id => "book" } # relationship
+   book =>
+   'Foo::Schema::Result::Book', 'book_id'
 );
 
@@ -690,10 +656,6 @@ __PACKAGE__->belongs_to(
-

with no coding...

-
- -

many_to_many

@@ -703,12 +665,11 @@ __PACKAGE__->belongs_to( use base 'DBIx::Class::Core'; __PACKAGE__->many_to_many( - authors => "author_and_books", 'author' + authors => 'author_and_books', 'author' ); 1; - - # This is NOT auto generated by Schema::Loader +
@@ -737,8 +698,7 @@ __PACKAGE__->many_to_many( ); 1; - -# This is NOT auto generated by Schema::Loader +