2010-12-01 13 views
1

私はDoctrineを従来のMySqlデータベースの上に実装しようとしています。今のところ、それは一種の偉大な鍋。しかし...Doctrine - フィールド内のコンマ区切りの値

構造は次の通りですwhitch私はイベントテーブルを持っている:

CREATE TABLE `events` (
    `uid` int(11) NOT NULL AUTO_INCREMENT, 
    -- skipped --- 
    `title` varchar(255) NOT NULL DEFAULT '', 
    `category` text, 
)... 

とテーブルカテゴリーは、whitchカテゴリがあります。構造が似ている...今...カテゴリIDをカンマ(、)としてを格納している

CREATE TABLE `tx_tendsical_category` (
    ... 
`title` varchar(255) NOT NULL DEFAULT '', 
    ... 
) 

はevents.categoryフィールドに値を分離しました。何か面倒なことなく関係を設定するにはどうすればいいですか?私にはたくさんのものが必要です...

+0

あなたが自分でEvents_categoriesテーブル –

+0

私は私だけ実装していない可能性があるためを与えるために正規化したほうが良いと思います「ビュー」システムは、データベースを変更することはできません:( –

答えて

3

データベーススキーマに問題がある場合は、独自のハイドレーターを書いてください。すべてのデータを取得したら、解析して適切なオブジェクトコレクションを返します。

0

私はそれをこのようにしました...パーセプションよりよい方法がありますか?

public function getCategories(){ 
    return Doctrine_Query::create() 
     ->from("Category c") 
     ->where("c.uid IN ?",array(explode(",",$this->category))) 
     ->execute(array(),Doctrine_Core::HYDRATE_ON_DEMAND); 
} 
関連する問題