【发布时间】:2010-05-30 21:42:00
【问题描述】:
我为使用一个“项目”表的架构师构建了一个非常基本的 php/mysql 站点。 该网站展示了他从事的各种项目。
每个项目包含一段文字和一系列图像。
原始项目表(创建语法):
CREATE TABLE `projects` (
`project_id` int(11) NOT NULL auto_increment,
`project_name` text,
`project_text` text,
`image_filenames` text,
`image_folder` text,
`project_pdf` text,
PRIMARY KEY (`project_id`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=latin1;
客户端现在需要以下内容,我不确定如何处理数据库中的扩展。 我怀疑我需要一张额外的桌子。
现在每个项目都有“页面”。
页面包含...
- 一张图片
- 一段文字
- 一张图片和一段文字。
每个页面都可以使用三种布局之一。
由于目前每个项目的文本不超过 4 条(这是一个非常冒险的假设),因此我扩展了原始表格以容纳所有内容。
新项目表尝试(创建语法):
CREATE TABLE `projects` (
`project_id` int(11) NOT NULL AUTO_INCREMENT,
`project_name` text,
`project_pdf` text,
`project_image_folder` text,
`project_img_filenames` text,
`pages_with_text` text,
`pages_without_img` text,
`pages_layout_type` text,
`pages_title` text,
`page_text_a` text,
`page_text_b` text,
`page_text_c` text,
`page_text_d` text,
PRIMARY KEY (`project_id`)
) ENGINE=MyISAM AUTO_INCREMENT=8 DEFAULT CHARSET=latin1;
在尝试了解有关 MYSQL 表结构的更多信息时,我刚刚阅读了 an intro to normalization 和 A Simple Guide to Five Normal Forms in Relational Database Theory。我要继续阅读! 提前致谢
【问题讨论】:
标签: mysql database-design