Я играю с Zend Framework и пытаюсь использовать руководство "QuickStart" для веб-сайта, который я создаю, просто чтобы посмотреть, как этот процесс будет работать. Простите, если этот ответ очевиден, надеюсь, кто-то опытный сможет пролить свет на это.
У меня есть три таблицы базы данных:
CREATE TABLE `users` (
`id` int(11) NOT NULL auto_increment,
`email` varchar(255) NOT NULL,
`username` varchar(255) NOT NULL default '',
`first` varchar(128) NOT NULL default '',
`last` varchar(128) NOT NULL default '',
`gender` enum('M','F') default NULL,
`birthyear` year(4) default NULL,
`postal` varchar(16) default NULL,
`auth_method` enum('Default','OpenID','Facebook','Disabled') NOT NULL default 'Default',
PRIMARY KEY (`id`),
UNIQUE KEY `email` (`email`),
UNIQUE KEY `username` (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
CREATE TABLE `user_password` (
`user_id` int(11) NOT NULL,
`password` varchar(16) NOT NULL default '',
PRIMARY KEY (`user_id`),
UNIQUE KEY `user_id` (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
CREATE TABLE `user_metadata` (
`user_id` int(11) NOT NULL default '0',
`signup_date` datetime default NULL,
`signup_ip` varchar(15) default NULL,
`last_login_date` datetime default NULL,
`last_login_ip` varchar(15) default NULL,
PRIMARY KEY (`user_id`),
UNIQUE KEY `user_id` (`user_id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1
Я хочу создать модель User, которая использует все три таблицы в определенных ситуациях. Например, к таблице метаданных осуществляется доступ, если / когда нужны метаданные. Доступ к таблице user_password возможен только в том случае, если задан auth_method по умолчанию. Скорее всего, позже я добавлю таблицу профилей, к которой я хотел бы получить доступ из пользовательской модели.
Каков наилучший способ сделать это с ZF и почему?