数据库表设计是否需要在字段前标注字段的所属对象,比如用户表的名字是 user_name,学校表的名字字段是 school_name
这样写法会不会过于冗余。
这样写法会不会过于冗余。
不太懂用 user_name 和 school_name 有什么好处。
等等,除非你为了取出来到 php 里面的时候可以 select * …
因为很多表名本身就自带前缀,字段名再加表名前缀,这是在套娃吗。字段名冲突用别名解决不香吗。
另外坚决反对缩写的,少一两个字符又不会影响数据库性能,是想让别人觉得你很厉害吗?
程序里面也是同理,有些人就喜欢整各种稀奇古怪的缩写变量名,方法名。生怕别人不知道这坨屎是谁拉的。
后来因为 ORM,或者是回归原始的关系数据模型,列(属性 /字段),只能从属于表(实体 /类)了,列名是否能自举,就不再重要了。
然而以上那些只是副因,如何命名,主要还是取决于开发人 /团队的自制规范。
不过一般情况下,外部数据才会加前缀,本体属性不会加前缀。
—-
我们这边的习惯就是只有外键会加表名,比如文章表的作者 ID 和分类 ID:creator_id 、category_id
—
另外,#1 @feifanhanmc 的那个命名规范简直烂透了
另外,编辑器已经实现代码提示,不用在乎长,可读性反而更重要。
个人不习惯 user_name 这样的命名方式
user 表已经说明问题了
建议 map 字段命名:
public $publibUser = [
$userStringPublicName => “xxx”,
$userIntPublicSex => 12,
$userIntPublicId => 1,
]
建议类命名
class User {
public PublicObjectUserInfo() {}
public PublicArrayUserList() {}
public PublicVoidUserUpdate {}
public PublicVoidUserCreate {}
public PublicVoidUserDelete {}
private _VoidAddUserSex{}
}
建议接口命名
api/users/12/user_posts (获取用户文章)
api/products/12/product_comments (获取商品评论)
除非你进行的是超大型项目,类似运营商 CRM 这类。表结构大,数据多,未来会上 N 多个 BI 、分析系统,主表如用户或者交易还经常会被各种联表、过程进行查询。上述情况,推荐添加。实际上,电信以及相应厂商的规范里面也写的很清楚。
正常一般应用,我是觉得 User.name 比 user.userName 好多了。
大家一起权衡
学校表 school
name, …
某个不知道啥既有用户又有学校的表
user_name, school_name, …
要不把数据库名字也加上,跨库查询也是需要的嘛
school 表
id
name
如果这些字段在其他表中使用则 user_id user_name school_id school_name
我认为表名字段名长一点没关系,直观识别意义比较重要.
想屏蔽 1L 那样的人