我正在构建一个自定义CMS系统,使用PHP和MySQL。我的CMS将有页面。每个页面都是一种类型。每种页面类型都分配了一些不同类型的属性(数字,文本等)。我目前正在创建用于存储这些东西的数据库 - 页面类型,属性,页面和属性值。第一个解决方案是有4个不同的表:
=pages=
page_id
page_type_id
page_name
=page_types=
page_type_id
page_type_name
=page_properties=
property_id
property_name
=page_property_values=
page_id
property_id
property_value
唯一的问题是,我必须将所有类型的属性保存到相同的数据类型字段(例如varchar)。我真正想要的是将布尔数据保存到布尔字段。
我的第二个解决方案是为每种页面类型创建一个单独的表。例如:
=page_type_text_page=
page_id
title [varchar]
content [text]
active [boolean]
有人可以帮助我,如何修改这个结构以获得正确的解决方案?
答案 0 :(得分:0)
我想帮助您解决一些经验:
答案 1 :(得分:0)
第三种选择可能是
的内容<强> property_types 强>
<强> page_property_values 强>
..您只使用某个页面属性的值列之一,其余为空。通过这种方式,您可以通过一些连接在单个调用中获取页面的所有属性,然后通过查看属性数据类型以编程方式从适当的列中获取值。