Comment 0 for bug 284702

Revision history for this message
Adam Janosek (janosekadam) wrote :

hello, i have this (two) sql tables

CREATE TABLE `network` (
  `id` int(11) NOT NULL auto_increment COMMENT 'PK',
  `interfaceId` int(11) default NULL COMMENT 'FK_interface_id',
  `ipAdresa` varchar(16) collate utf8_czech_ci NOT NULL COMMENT 'ip adresa site',
  `maska` int(16) unsigned NOT NULL COMMENT 'maska site',
  `ipRouter` varchar(16) collate utf8_czech_ci default NULL COMMENT 'ip adresa routeru',
  `verejna` int(1) unsigned NOT NULL default '0' COMMENT 'boolean 1=je verejna / 0=neni verejna',
  `isp` enum('sumnet','poda','sloane') collate utf8_czech_ci NOT NULL default 'sumnet' COMMENT 'urceni ktery isp vlastni tuto sit , poda a sloane maji verejne',
  PRIMARY KEY (`id`),
  KEY `interfaceId` (`interfaceId`),
  KEY `verejna` (`verejna`),
  KEY `isp` (`isp`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci COMMENT='ip site verejne/neverejne' AUTO_INCREMENT=7 ;

CREATE TABLE `custPc` (
  `id` int(11) NOT NULL auto_increment COMMENT 'PK',
  `customerId` int(11) default NULL COMMENT 'FK customer id',
  `popis` varchar(50) collate utf8_czech_ci NOT NULL COMMENT 'textovy popis pocitace',
  `macAdresa` varchar(12) collate utf8_czech_ci default NULL COMMENT 'mac adresa stroje',
  `networkId` int(11) default NULL COMMENT 'FK network id',
  `ipAdresa` varchar(16) collate utf8_czech_ci default NULL COMMENT 'ip adresa stroje',
  `networkIdVerejna` int(11) default NULL COMMENT 'FK network id pro verejnou ip adresu',
  `ipAdresaVerejna` varchar(16) collate utf8_czech_ci default NULL COMMENT 'verejna ip adresa stroje',
  `down` int(11) default NULL COMMENT 'rychlost downloadu',
  `up` int(11) default NULL COMMENT 'rychlost uploadu',
  PRIMARY KEY (`id`),
  KEY `customerId` (`customerId`),
  KEY `networkId` (`networkId`),
  KEY `networkIdVerejna` (`networkIdVerejna`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_czech_ci COMMENT='stroje zakazniku' AUTO_INCREMENT=8 ;

ALTER TABLE `custPc`
  ADD CONSTRAINT `custPc_ibfk_2` FOREIGN KEY (`customerId`) REFERENCES `customer` (`usr_id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `custPc_ibfk_3` FOREIGN KEY (`networkId`) REFERENCES `network` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
  ADD CONSTRAINT `custPc_ibfk_4` FOREIGN KEY (`networkIdVerejna`) REFERENCES `network` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;

so at brief, there are two relation between this two tables (networkId and networkIdVerejna(in eng.networkIdPublic) ), and when i generate classes in /models/generated/CustPc_Generated.class.php is like this:

<?php

/**
 * This is the base class for CustPc.
 *
 * @see CustPc, CoughObject
 **/
abstract class CustPc_Generated extends CoughObject {

...omited

 public function loadNetwork_Object() {
  $this->setNetwork_Object(Network::constructByKey($this->getNetworkId()));
 }

 public function getNetwork_Object() {
  if (!isset($this->objects['Network_Object'])) {
   $this->loadNetwork_Object();
  }
  return $this->objects['Network_Object'];
 }

 public function setNetwork_Object($network) {
  $this->objects['Network_Object'] = $network;
 }

 public function loadNetwork_Object() {
  $this->setNetwork_Object(Network::constructByKey($this->getNetworkIdVerejna()));
 }

 public function getNetwork_Object() {
  if (!isset($this->objects['Network_Object'])) {
   $this->loadNetwork_Object();
  }
  return $this->objects['Network_Object'];
 }

 public function setNetwork_Object($network) {
  $this->objects['Network_Object'] = $network;
 }

 // Generated one-to-many collection loaders, getters, setters, adders, and removers
...omited

so load/get/set/Network_Object is twice time in new generated code. I think that's bad behaviour.
Isn't it ?

  Adam Janosek