只是一个一般的数据库设计问题 - 没有编程,但有点问题解决我无法理解......
我有一组用于GUI的页面,每个页面都包含一组“模块” - 基本上是样式的内容框,其中包含与页面相关的一些功能/信息。
在呈现之前,页面和模块都被实例化为php对象。我希望从数据库中调用这些对象的变量(标题,内容等)。
我无法解决的是如何将这些数据存储在数据库中。我有一个表,每个条目是一个页面,一个表,其中每个条目是一个模块,但我无法弄清楚如何存储代表每个页面所具有的模块的数据,特别是考虑到模块可能是更常见的不止一页。
嵌套表是理想的答案,mySQL是否允许这样做?
答案 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)
)
从这里,您可以通过在此表中为每个页面/模块对创建一个条目,将模块添加到不同的页面。