不确定这是否是我的数据库的最佳结构,但这是我目前所拥有的(对改动的建议开放)。我基本上想要为每个页面创建具有用户定义字段集的页面。所以我有四个表:pages,page_fields,page_data和data_fields。
的网页:
id name
1 home
page_fields:
page_id field_id
1 1
1 2
1 3
page_data:
page_id field_id content
1 1 'This is the Title'
1 3 'Some description here'
data_fields:
id field_name field_type
1 title text
2 subtitle text
3 description textarea
首先,这是一个很好的数据库结构吗? 其次,如何获取page_field表定义的必填字段,该字段的数据(如果有的话)以及我们知道页面ID的filed_name和filed_type?
我认为这里会有几个连接,但我无法解决它们。
任何帮助表示感谢。
答案 0 :(得分:0)
假设一个页面上的一个字段可以具有单个值,您可以轻松地消除page_fields
表。分配给页面的字段列表将存储在page_data
中,如果还没有内容,则NULL值将显示在content
列中。
类似SELECT * FROM page_fields INNER JOIN page_data ON (page_fields.page_id = page_data.page_id) INNER JOIN data_fields ON (page_data.field_id = data_fields.id);
另外阅读有关实体属性值模型的信息,可能会产生一些新想法,通常对理解事物有用:http://en.wikipedia.org/wiki/Entity-attribute-value_model