2011-01-13 84 views
0

只是一般的数据库设计问题 - 无需编程,但有点问题解决我不能完全避开我的头......的PHP/MySQL数据库GUI

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

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

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

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

+0

可能会显示您的模式/大纲要存储的值,可能有助于可视化您的解决方案。 – Jakub 2011-01-13 05:03:49

回答

2

这听起来像是多对多的关系。你需要第三个“连接”表。所以,举例来说,如果你有如下表:通过创建此表的条目

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

从这里你可以添加模块到不同的网页:

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) 
); 

您将创建第三个表样用于每个页面/模块对。

+0

干杯队友,绝对似乎是唯一的方法来做到这一点。非常感谢! – 2011-01-16 11:59:05