用于GUI的Php / mySQL数据库

时间:2011-01-13 04:54:11

标签: php mysql database-design

只是一个一般的数据库设计问题 - 没有编程,但有点问题解决我无法理解......

我有一组用于GUI的页面,每个页面都包含一组“模块” - 基本上是样式的内容框,其中包含与页面相关的一些功能/信息。

在呈现之前,页面和模块都被实例化为php对象。我希望从数据库中调用这些对象的变量(标题,内容等)。

我无法解决的是如何将这些数据存储在数据库中。我有一个表,每个条目是一个页面,一个表,其中每个条目是一个模块,但我无法弄清楚如何存储代表每个页面所具有的模块的数据,特别是考虑到模块可能是更常见的不止一页。

嵌套表是理想的答案,mySQL是否允许这样做?

1 个答案:

答案 0 :(得分:2)

这听起来像是多对多的关系。你需要第三个'链接'表。因此,例如,如果您有以下表格:

CREATE TABLE pages (
  id INT(11) NOT NULL, 
  title VARCHAR(40), 
  PRIMARY KEY (id)
);
CREATE TABLE modules (
  id INT(11) NOT NULL, 
  title VARCHAR(40), 
  PRIMARY KEY (id)
);

您可以创建第三个表格,如:

CREATE TABLE pages_modules (
  pid INT(11) NOT NULL, 
  mid INT(11) NOT NULL, 
  PRIMARY KEY(pid, mid)
)

从这里,您可以通过在此表中为每个页面/模块对创建一个条目,将模块添加到不同的页面。