阿罗哈,
我刚刚开始用PHP编程,并且有一个基本的命名约定问题。阅读this post后,我已经阅读了很多PHP编码标准。这对我来说非常有意义,因为在命名变量时我已经更喜欢使用camelCase。由于我将使用MySQL,我还阅读了数据库命名约定。有很多不同的偏好,但似乎只要你一致,就可以。然而,我似乎注意到的一件事是大多数数据库命名约定都说用大写字母开始属性,而在PHP(以及大多数编程)中,变量应该以小写字母开头。我将使用带有DAO和VO的MVC模型。我真的希望我的VO反映我的数据库表,但第一个字母的大写是冲突的。我应该让套管不匹配,还是更换套管以使它们都相同?你们是怎么做到的?
提前致谢,
弗兰克
答案 0 :(得分:5)
我建议使用带有下划线的小写字母用于数据库命名,因为这会使您的代码更加灵活。
示例:
假设您使用MySQL作为数据库并将表命名为FooBar。现在客户端想要切换到PostgreSQL作为替代数据库,这会导致您的表名成为问题,因为postgres使用小写命名或用双引号括起来。
MySQL查询语法:
SELECT * FROM FooBar
Postgres查询语法:
SELECT * FROM "FooBar"
如果您遵循通用命名方案,则可以对两个
使用一个查询SELECT * FROM foo_bar
答案 1 :(得分:2)
以下是Zend的运作方式:
(新链接) http://framework.zend.com/manual/current/en/ref/coding.standard.html#naming-conventions
答案 2 :(得分:1)
Ya,对于数据库和表,每个人都更喜欢下划线。很少有人喜欢全部大写,很少全部小写。但如果Phill是正确的,那么我将投票给DB和表的全部小写。
答案 3 :(得分:0)
喜欢你喜欢它,但是,正如你自己说的那样:
[...]只要你是 一致,没关系。
我更喜欢两者使用相同的外壳,并以小写字符开头。
答案 4 :(得分:0)
我更喜欢在表和列的名称中使用所有小写,并且替换为下划线的空格。表格名称单数的表格名称。它通常有助于将数据库结构转换为PEAR标准模型。
class User extends MyActiveRecord
{
public function getFirstName()
{
//...
}
}
SELECT * FROM user WHERE first_name LIKE 'Bill'
外键为“某些特定信息”_“外表名”_“外出列名”。它有助于找出我们通过外键链接的表。
SELECT * FROM post LEFT JOIN user ON post.author_user_id = user.id