gpt4 book ai didi

PHP/MySQL : The right way creating a big website database based

转载 作者:行者123 更新时间:2023-11-29 04:04:39 25 4
gpt4 key购买 nike

我正在创建一个电影网站,例如 IMDB.com。我对 PHP 和编程完全陌生,但我有一些书和 StackOverflow 当然 :)

我已经做了很多工作,但现在我每页有 600 多行代码(仅 PHO)和 20 多个数据库表仅用于存储和获取电影数据(多对多关系)

大部分代码是用于插入/获取数据和循环的 MySQLi 查询(准备语句)。没什么特别的,只是基本的 PHP/MySQL。

我有一些问题:

  • 建议为每个 SQL 查询使用 MySQLi 准备好的语句,或者最好只使用旧的 MySQL 进行内部 PHP/数据库查询,只为用户输入保留准备好的语句?

  • 要获取所有电影数据并显示它,我需要从超过 16 个不同的表中获取数据。我对每个表使用一个 MySQL 查询(有时更多)和许多循环。这是网站需要工作的正确方式吗??我的意思是..这是正常的???

  • 如何简化代码以简化阅读?我可以将所有这些查询分离到外部文件吗?我可以创建函数来处理每个表查询吗??

希望您能帮助我,也许您对正确构建这样的网站有更多建议。

谢谢!!

最佳答案

正如在上面的回答中提到的,我还会向您指出使用实现 MVC 设计模式的框架。除此之外,大多数框架都内置了 ORM,但如果没有,您可以查看 Symphony 或 EZPDO 是另一个很好的 ORM,可以与 (M)VC 中的模型绑定(bind)。

CodeIgniter 是一个非常快速且轻量级的 MVC 框架,可以让您快速启动,但您可能还想研究一下 ZF (ZendFramework)。 ZF 具有出色的框架功能集,总体上非常灵活。

除此之外,请务必在模型或您对所选 ORM 的调用中分离您的读取和写入。这将允许您将数据从属到多个 MySQL Box 以获得更高的性能,但允许您使用一个数据库引擎开始。

添加使用 Memcached 的功能,以便您可以缓存数据/对象而不是访问数据库。

在使用缓存时,请考虑如何使数据库更新的缓存过期。换句话说,如果您从数据库中选择要显示在 View 中的数据并且该数据未更改,则您不需要每次都访问数据库,而是从内存中提取它。一旦数据确实发生了变化,您可能希望使该缓存失效,这样它就不会过时,然后重新缓存新数据。

内存缓存:http://www.danga.com/memcached/ '

-facebook也有版本

CodeIgniter - http://codeigniter.com/

EZPDO - http://www.ezpdo.net/blog/?p=2

ZendFramework - http://framework.zend.com/

关于PHP/MySQL : The right way creating a big website database based,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/782841/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com