`

我的网站数据库设计构思

阅读更多

2009年04月19日 | 作者: Fonny

研究了一下BBlog的数据库设计,给我了些启发,不过PHP程序和Flex多少还是有区别.

 

比如,php可以直接引用数据库数据,随时查询随时使用,而Flex程序要靠AMFPHP中介控制数据库,这样,很多数据解析处理工作放在了客户端.

研究BB的文档之前我还没有一个明确的思路,但是刚刚突然想到了几个关键的问题,只要针对这些特点就能设计好相对科学的数据库.

首先,Flex的内存回收机制是”无法预测”的,那么需要尽量模块化,尽量在组件内部使用相对固定的对象,和引用.也就是独立化.那么,数据库应该根据View层出现的各个组件来设计,比如:

首页需要一个计数器,计数器会单独使用一些统计数据,比如网站总浏览量,网站文章数量,今日访问数量等等,那么针对这个组件就独立设计一个计数器表,对外的联系使用外部表项目的唯一ID.这样一个相对独立的计数器组件系统就完整了,基本和其他功能脱偶.

如何构建一个适合AMFPHP结合Flex的数据库呢?

我认为,应该先勾画出View层,也就是用户界面,把各个组件的分工明确化,独立化,然后根据各个组件需要的数据库数据设计各个相对对应的数据库表.

当然,不可能完全做到一个表服务于一个组件,因为关系数据库的数据基本上都会有些联系和互相依赖.

比如,文章Product的类别名称,在Product表中仅仅保存了一个CategoryID,这样,读取Product的时候就必须搜集Category分类表中的分类名称信息.而Category表更侧重于服务ProductCategory列表这个View层的组件…

那么,如何处理这样的情况呢?

之前,我考虑直接使用文本类型保存分类信息到Product表中,避免需要读取分类表,而需要用到分类列表的时候直接发出文本类型的查询.唯一的要求就是全局使用UTF-8保存数据.

另外,对于时间的保存问题.

虽然AS3可以解析标准UNIX时间戳格式,但是很麻烦,需要用5个以上函数加在一起才能还原可读的格式…

所以我决定直接使用NOW()保存可读格式,客户端当成文本使用.而且,把创作Product时间设为NOW()之后,基本上不会再update这个数据了,而修改时间使用Mysql的另一个保存格式,自动更新每次修改Product表的时间.这样大家都不用直接操作时间这方面的东西了.可以满足基本的需要.

对于某些常量的规定,我不想用笔写下来在客户端规定,而是用数据库专门创建几个表来保存这些数据,比如:
Products如何显示的几个常量,”置顶”,”不置顶”,”展开”,”收缩”等,这样一来,甚至可以做到客户端可以自定义这些常量名称,或者修改其显示方式.

对于缓存表的作用我还没有明白,为什么需要一个缓存表呢?
好像mysql会自动排序请求,一个接一个的完成查询啊.就算是计数器也是读取一次插入一次而已.

好了,明天开始设计客户端界面组件,一切都已经准备好了,我的新网站就要开始了.

分享到:
评论

相关推荐

    数据库设计--软件工程与数据库设计

    数据库设计在软件工程中扮演着至关重要的角色,它与软件生命周期和不同的开发模型紧密相连。软件生命周期是指软件从构思到退役的整个过程,包括多个阶段,如可行性研究、需求分析、设计、实现、测试和维护。数据库...

    电子商务网站的数据库规划和构思

    总之,一个良好的电子商务网站数据库设计不仅需要考虑业务需求,还要兼顾系统性能和数据安全。通过合理的逻辑设计和物理设计,可以构建一个高效、稳定且易于扩展的数据库系统,为电子商务网站的运营提供坚实的基础。

    数据库期末课程设计:数据库设计针对学籍管理系统

    本资源合集涵盖了丰富多样的数据库课程设计实例,旨在为广大学习者提供全面而实用的参考,帮助您深入理解数据库设计的原理与实践。 无论您是数据库初学者,还是正在寻求提升数据库设计能力的进阶学习者,这里都有您...

    数据库设计基础

    数据库设计基础是软件工程领域中一个至关重要的主题,它涵盖了数据管理的核心理论和技术,对于确保数据的高效存储、检索和管理至关重要。以下是基于标题“数据库设计基础”和描述中的核心知识点的深入解析: ### ...

    数据库设计课程设计——高校选课管理系统.zip

    本资源合集涵盖了丰富多样的数据库课程设计实例,旨在为广大学习者提供全面而实用的参考,帮助您深入理解数据库设计的原理与实践。 无论您是数据库初学者,还是正在寻求提升数据库设计能力的进阶学习者,这里都有您...

    火车票售票系统数据库设计.doc

    火车票售票系统数据库设计是构建一个高效、稳定且安全的铁路交通信息管理平台的关键环节。在设计这样的系统时,我们需要考虑各种数据实体及其相互关系,确保数据的一致性、完整性和可访问性。以下是根据标题、描述和...

    数据库课程设计-医院药品管理系统,数据库设计,Spring Boot + MyBatis + MySQL.zip

    本资源合集涵盖了丰富多样的数据库课程设计实例,旨在为广大学习者提供全面而实用的参考,帮助您深入理解数据库设计的原理与实践。 无论您是数据库初学者,还是正在寻求提升数据库设计能力的进阶学习者,这里都有您...

    数据库课程设计,数据库系统.zip

    本资源合集涵盖了丰富多样的数据库课程设计实例,旨在为广大学习者提供全面而实用的参考,帮助您深入理解数据库设计的原理与实践。 无论您是数据库初学者,还是正在寻求提升数据库设计能力的进阶学习者,这里都有您...

    数据库课程设计期末大作业,利用sql sever2018 进行建库,利用python处理后端程序,flask搭建前端.zip

    本资源合集涵盖了丰富多样的数据库课程设计实例,旨在为广大学习者提供全面而实用的参考,帮助您深入理解数据库设计的原理与实践。 无论您是数据库初学者,还是正在寻求提升数据库设计能力的进阶学习者,这里都有您...

    数据库课程设计.zip

    本资源合集涵盖了丰富多样的数据库课程设计实例,旨在为广大学习者提供全面而实用的参考,帮助您深入理解数据库设计的原理与实践。 无论您是数据库初学者,还是正在寻求提升数据库设计能力的进阶学习者,这里都有您...

    天津理工大学数据库课程设计c#+Mysql数据库课程设计-房屋租赁管理系统.zip

    本资源合集涵盖了丰富多样的数据库课程设计实例,旨在为广大学习者提供全面而实用的参考,帮助您深入理解数据库设计的原理与实践。 无论您是数据库初学者,还是正在寻求提升数据库设计能力的进阶学习者,这里都有您...

    课程设计 数据库课程设计 平行志愿录取系统(后端代码数据库大作业)

    本资源合集涵盖了丰富多样的数据库课程设计实例,旨在为广大学习者提供全面而实用的参考,帮助您深入理解数据库设计的原理与实践。 无论您是数据库初学者,还是正在寻求提升数据库设计能力的进阶学习者,这里都有您...

    BUPT 数据库课程设计.zip

    本资源合集涵盖了丰富多样的数据库课程设计实例,旨在为广大学习者提供全面而实用的参考,帮助您深入理解数据库设计的原理与实践。 无论您是数据库初学者,还是正在寻求提升数据库设计能力的进阶学习者,这里都有您...

    BUAA数据库课程设计.zip

    本资源合集涵盖了丰富多样的数据库课程设计实例,旨在为广大学习者提供全面而实用的参考,帮助您深入理解数据库设计的原理与实践。 无论您是数据库初学者,还是正在寻求提升数据库设计能力的进阶学习者,这里都有您...

    数据库课程设计。纯java源码的关系数据库.zip

    本资源合集涵盖了丰富多样的数据库课程设计实例,旨在为广大学习者提供全面而实用的参考,帮助您深入理解数据库设计的原理与实践。 无论您是数据库初学者,还是正在寻求提升数据库设计能力的进阶学习者,这里都有您...

    课程设计作业...数据库课程设计小组.zip

    本资源合集涵盖了丰富多样的数据库课程设计实例,旨在为广大学习者提供全面而实用的参考,帮助您深入理解数据库设计的原理与实践。 无论您是数据库初学者,还是正在寻求提升数据库设计能力的进阶学习者,这里都有您...

    网站总体规划方案与数据库设计.doc

    网站总体规划方案与数据库设计是构建高效、用户友好且功能丰富的在线平台的关键步骤。这份文档将深入探讨这个过程,包括从初期的项目启动到最终的数据库实施。 1. 引言: 在开发任何网站之前,首先需要一个清晰的...

    基于Visio的Geodatabase数据库设计.pdf

    本文档《基于Visio的Geodatabase数据库设计.pdf》是关于如何使用Microsoft Visio这一流行且功能全面的绘图工具来设计和构建Geodatabase数据库的教程或指南。文档的标题表明其主要关注点是在Visio环境下对Geodatabase...

    山东大学数据库课程设计.zip

    本资源合集涵盖了丰富多样的数据库课程设计实例,旨在为广大学习者提供全面而实用的参考,帮助您深入理解数据库设计的原理与实践。 无论您是数据库初学者,还是正在寻求提升数据库设计能力的进阶学习者,这里都有您...

Global site tag (gtag.js) - Google Analytics