Node::class, 'Parent' => DataObject::class, // Will create a ParentID column + ParentColumn Enum column ]; private static $has_many = [ 'HM' => HasMany::class ]; private static $many_many = [ // has belongs_many_many on the other end 'MMtoBMM' => Belongs::class, // does not have belong_many_many on the other end 'MMtoNoBMM' => Node::class, // manyManyThrough 'MMT' => [ 'through' => ThroughObject::class, 'from' => 'HubObj', 'to' => 'NodeObj', ], // manyManyThrough Polymorphic 'MMTP' => [ 'through' => ThroughObjectPolymorphic::class, 'from' => 'Parent', 'to' => 'NodeObj', ] ]; private static $belongs_many_many = [ // has many_many on the other end 'BMMtoMM' => ManyMany::class, 'BMMtoMMT' => ManyManyThrough::class // Not testing the following, will throw this Silverstripe error: // belongs_many_many relation ... points to ... without matching many_many // does not have many_many on the other end // 'BMMtoNoMM' => Node::class ]; }