繁体   English   中英

数据库规范化和 sql 混淆

[英]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 表定义的必填字段、该字段的数据(如果有)以及字段名称和字段类型?

我想这里会有几个连接,但我无法解决它们。

任何帮助表示赞赏。

  1. 假设一页上的一个字段可以有单个值,您可以轻松消除page_fields表。 分配给页面的字段列表将存储在page_data中,如果还没有内容,NULL 值将在content列中。

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

  3. 另外阅读有关实体属性值 model 的信息,可能会产生一些新想法并且通常对理解事物有用: http://en.wikipedia.org/wiki/Entity-attribute-value_model

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM