有沒有一種方法可以防止主體在一對一關係的雙方上分配一個限制?我嘗試將定義從一方移到另一方,並使用擁有方,但它仍然對兩個表都設置了約束。當我只想要父表有一個約束 - 即。其父母可能沒有關聯的孩子。學說1.2:我如何防止將一個約束分配給一對多關係的雙方?
例如iwant實質上包含以下SQL模式:
CREATE TABLE `parent_table` (
`child_id` varchar(50) NOT NULL,
`id` integer UNSIGNED NOT NULL auto_increment,
PRIMARY KEY (`id`)
);
CREATE TABLE `child_table` (
`id` integer UNSIGNED NOT NULL auto_increment,
`child_id` varchar(50) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY (`child_id`),
CONSTRAINT `parent_table_child_id_FK_child_table_child_id`
FOREIGN KEY (`child_id`)
REFERENCES `parent_table` (`child_id`)
);
然而即時得到這樣的事情:
CREATE TABLE `parent_table` (
`child_id` varchar(50) NOT NULL,
`id` integer UNSIGNED NOT NULL auto_increment,
PRIMARY KEY (`id`),
CONSTRAINT `child_table_child_id_FK_parent_table_child_id`
FOREIGN KEY (`child_id`)
REFERENCES `child_table` (`child_id`)
);
CREATE TABLE `child_table` (
`id` integer UNSIGNED NOT NULL auto_increment,
`child_id` varchar(50) NOT NULL,
PRIMARY KEY (`id`),
UNIQUE KEY (`child_id`),
CONSTRAINT `parent_table_child_id_FK_child_table_child_id`
FOREIGN KEY (`child_id`)
REFERENCES `parent_table` (`child_id`)
);
我可以手動刪除約束或修改我的訪問器返回/設置集合中的單個實體(使用一對多),但它似乎應該構建來處理這個問題。
也即時使用Symfony 1.4.4(梨安裝ATM) - 以防其sfDoctrinePlugin問題,而不一定是學說本身。
因此,它是專門針對Symfony和不學說?我問,因爲我在symfony做了一些快速原型,但最終的應用程序將在Zend開發/編寫。所以如果這不是教義問題,我只需要爲他們找到一個解決方法 - 如果其實際上有問題的教條不得不做更多的事情。 – prodigitalson 2010-04-13 04:30:40
那麼,這不是教義問題,甚至不是一個問題 - 它只是一個配置參數。 – develop7 2010-04-13 15:07:09
有人可以在這方面投光嗎? 即使在這個雙關係混亂之後,我得到一個錯誤,說,Add方法對於子關係不存在。這是殺了我! – Prasad 2010-07-20 16:55:40