2011-09-23 57 views
0

我对编程相当陌生,我从头开始学习PHP和MySQL。学习原始的PHP/MySQL,数据库应该是令人困惑的?

我开始理解数据库是如何工作的:您有表格,并且您的网站的所有主题都有唯一的ID。不过,这似乎相当单调乏味,因为您并不总是知道您的网站上有多少内容。关系数据库的概念似乎有点混乱。

我的问题是,一旦你使用PHP和/或框架如codeigniter进行面向对象编程,它是否简化了这些概念?我现在想要补充原始的php,所以我可以理解语言的基础,但是到目前为止似乎相当困难。

+0

框架确实有帮助,但听起来好像你并没有完全理解所有的东西。您可以创建ID,但不一定是预设的预设ID数量。继续尝试,你会得到它。 – Moshe

+0

最初的概念并不难以“简化”它们。 – zerkms

+1

拥有一个好的ORM(对象关系管理器),你的PHP和你的SQL之间的一层,使事情变得更实用*。但是,您仍然需要了解数据存储方式以及表和外键的工作原理。但要坚持下去,这绝对是不同于你以前想的,但最终你会发现它。 – Dave

回答

1

答案是否定的,您需要具备数据库设计和SQL知识(以及一些关于DBMS,如MySQL,SQL Server,Access或其他)的知识来设计依赖于数据库的网站。

但是,基本的数据库设计和SQL非常容易学习。而且你可以学习足够的周末时间(或更少)。

拿一本关于你喜欢的DBMS的书(在这个例子中它看起来像是MySQL)并浏览它。他们通常有一章关于数据库设计和一章关于SQL查询。

0

使用SQL数据库是一门独立的学科。我不同意这很乏味 - 事实上,作为一个曾经开发过程数据库代码的人,需要手动创建数据结构,应用索引,锁定代码以及通常需要数百行代码才能完成最简单的事情,即关系数据库考虑到他们解决的所有问题,这是一个巨大的改进和时间分配器。由于它们是非程序性的并且基于集合论,因此存在一条学习曲线,但是这是非常值得的。这就是说,与他们合作的解决方案之一是“对象 - 关系映射”库,旨在自动化与sql数据库进行交互的过程,并且可以用来消除编写sql的需要。 Doctrine,Propel和Zend_db_table是PHP中ORM的一些不同的需求。问题是,ORM是真正为那些已经了解关系数据库及其设计方式的人设计的。

您通常必须配置ORM,而对于mysql,其默认名为myisam的“引擎”不支持存储表之间的关系。 ORM通常可以通过读取数据字典来使用“反射”来计算关系,但是使用mysql/myisam不可能确定表之间的关系,并且这是在为orm设置orm时需要配置的东西项目。如果你不懂如何关联和连接表格,以及数据库设计的细节,你无疑会非常困惑。

学习SQL的基础知识并不困难,对于大多数Web开发人员来说,这是一项重要的技能。即使使用ORM,有时您需要为了效率或权宜而下降到原始SQL。