我目前正在为一家在线销售艺术品的美术馆开发网站。我需要开发一些代码来收集和显示有关艺术家的信息(简历、邮件、电子邮件、展览日期……)。我首先尝试使用制造商功能并且只调整翻译,将“制造商”替换为“艺术家”,但我很快意识到我是有限的。我不需要将艺术家与其地址相关联,我需要更多信息。问题是我不知道实现这一点的最佳方法是什么,同时保持我的代码干净并使 prestashop 升级变得容易。
我想我需要制作新的数据库表,如下(展览日期,尚未实施):
CREATE TABLE `artist` (
`id_artist` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(64) NOT NULL,
`date_add` datetime NOT NULL,
`date_upd` datetime NOT NULL,
`active` tinyint(4) NOT NULL DEFAULT '0',
`email` varchar(255) DEFAULT NULL,
`phone` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id_artist`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
CREATE TABLE `artist_lang` (
`id_artist` int(11) NOT NULL,
`id_lang` int(11) NOT NULL,
`name` varchar(255) NOT NULL,
`description` text NOT NULL,
`short_description` text NOT NULL,
`meta_title` varchar(128) NOT NULL,
`meta_keywords` varchar(255) NOT NULL,
`meta_description` varchar(255) NOT NULL,
PRIMARY KEY (`id_artist`,`id_lang`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
我应该把它变成一个模块,还是直接在核心类中添加一个艺术家模块和控制器?如果这样做,我将不得不覆盖产品类。既然我不需要制造商,我应该覆盖制造商类吗?