[英]Database normalisation and sql confusion
不确定这是否是我的数据库的最佳结构,但这是我目前所拥有的(欢迎更改建议)。 我基本上想创建每个页面都有一组用户定义的字段的页面。 所以我有四个表:pages、page_fields、page_data 和 data_fields。
页数:
id name
1 home
page_fields:
page_id field_id
1 1
1 2
1 3
页面数据:
page_id field_id content
1 1 'This is the Title'
1 3 'Some description here'
数据字段:
id field_name field_type
1 title text
2 subtitle text
3 description textarea
首先这是一个好的数据库结构吗? 其次,如果我们知道页面 id,我如何获得 page_field 表定义的必填字段、该字段的数据(如果有)以及字段名称和字段类型?
我想这里会有几个连接,但我无法解决它们。
任何帮助表示赞赏。
假设一页上的一个字段可以有单个值,您可以轻松消除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);
另外阅读有关实体属性值 model 的信息,可能会产生一些新想法并且通常对理解事物有用: http://en.wikipedia.org/wiki/Entity-attribute-value_model
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.