"Pek çok-çok" için eşanlamlı

7 Cevap php

Bir "çok-çok" ilişki için eş anlamlısı nedir? Ben bir nesne-ilişkisel mapper yazmayı bitirdim ama hala bu ilişkiyi ekliyor işlevini isim ne olarak stumped.

addParent () ve addChild () tek-bir miras için many-to-one/one-to-many ve addSuperclass () için oldukça mantıklı görünüyordu, ama addManyToMany () nesne yönelimli bir programcı için oldukça unintuitive ses olur. addSibling () veya addCousin () gerçekten de mantıklı değil.

Herhangi bir öneriniz? Ve olmayan bir programlama sorusu olarak bu görevden önce, tutarlı bir adlandırma düzenleri ve kapsülleme programlama için oldukça ayrılmaz olduğunu unutmayın lütfen :)

7 Cevap

Belki addFriend()? Diğer seçenekler addLinked() veya addRelated() olabilir.

CakePHP bu a çağırır 'Has ve birçok aittir' derneği

http://book.cakephp.org/view/85/Saving-Related-Model-Data-HABTM

Nasıl addList veya addChildern veya addParents veya addParentsAndChildren hakkında?

Bu örnekte http://pastie.org/938704 sadece adında bir yöntem oluşturmak olmaz:

AddUserGame (Kullanıcı someuser, Oyun someGame)

Tricky! "RelateXtoY ()" Ben ile gelebilir iyi uyan genel bir terim olarak görünmüyor.

Ancak herhangi bir gerçek "gerçek" veri modeli için kullanılabilecek bir açık "fiil" genellikle yoktur. örneğin diyelim Ülke ve Havayolları arasında birçok ilişki için bir çok için bir yöntem AddRouteTo (CountryID, AirlineId) veya TravelledToUsing (CountryID, AirlineId) olabilir.

Ne bu düşünce hakkında:

  • connect(X, Y)
  • link(X, Y)
  • bind(X, Y)

Sadece Object Oriented sistemleri için ilişki bu tür adlarını bulmak zor, çok onları modellemek için de zor! Objects tend to live in hierarchies...

Kütüphane kullandığı yöntem ne isimleri kontrol - Böyle bir ilişki için bir kap bulabilirsiniz bakın.

A ve B'nin bazı (mutlaka farklı değil) ilişkiler üzerinde projeksiyonları B bir alt kümesidir: ilişkisel veritabanı açısından genel durum bir İçerme Bağımlılık, yani denir. "Yabancı bir anahtar" B bir aday anahtar dahil bağımlılık özel bir durumdur.