这样写法会不会过于冗余。
1
feifanhanmc Apr 14, 2021 via iPhone
目前在用的一套感觉比较好的命名规范
nam_school nam_user cod_sex vlu_mail num_phone |
2
dethan Apr 14, 2021 via Android
写也行,不写也行。没人说不好,也没人说好。
|
4
zoharSoul Apr 14, 2021 @feifanhanmc 这都啥奇奇怪怪的缩写
|
5
David1119 Apr 14, 2021 @feifanhanmc 哪来的自信觉得好?少写一个字母是什么鬼???
|
6
feifanhanmc Apr 14, 2021 via iPhone
@David1119 这叫奇怪的缩写?麻瓜
|
7
F281M6Dh8DXpD1g2 Apr 14, 2021 via iPhone
表名不是干这个用的么
|
8
oott123 Apr 14, 2021
@feifanhanmc 关于 1 楼提到的缩写,nam 应该是 name,num 是 number,这都没问题。可是 cod 和 vlu 分别是什么的缩写呢?我想了很久都没想出来,能否指点一下。
|
10
SuperMild Apr 14, 2021 |
11
MingYueQingFeng Apr 14, 2021 @feifanhanmc 你这漏几个字母我觉得比拼音都离谱,lear_record 、ou_log
|
12
zidian Apr 15, 2021 via iPhone
从来不加。
而且很迷的一件事,好像只有 id code name 爱加上表名,其他比如 age sex 就从没见过人加。 |
13
Chieh Apr 15, 2021
@feifanhanmc 为了“简化”英文少了拼写,导致懂英文的和不懂英文的都看不懂
|
14
c6h6benzene Apr 15, 2021 |
15
ipwx Apr 15, 2021
@c6h6benzene u.name 不就隐含 user.name 么,根据上下文都能知道。再不济到时候用 user.name 它不香嘛。。。
等等,除非你为了取出来到 php 里面的时候可以 select * ... |
16
c6h6benzene Apr 15, 2021
@ipwx #15 这不就是为了防止 user 和 unit 这种都是 U 开头的😂SQL JOIN 多的时候,ID 前面不加前缀我都想骂人
|
17
baobao1270 Apr 15, 2021 via Android
不加
反正 ORM 帮我搞定,现在几乎不怎么写 sql 了 |
18
neoblackcap Apr 15, 2021
如果你用的是关系型数据库,那么你这个做法就是反模式。毕竟关系型数据库讲究数据模型正交。
|
19
stabc Apr 15, 2021
我倾向于不加前缀
|
20
kchum Apr 15, 2021
不加. 连表有也有表名在前面, 用 Alias 出错也只能怪自己
|
21
morimi2026 Apr 15, 2021 via iPhone @feifanhanmc 这是我见过的最差的命名规范
|
22
ColouredGlaze Apr 15, 2021
name 是 mysql 数据库的保留字,个人建议是数据库字段加上前缀,代码实体去掉前缀,映射做好,个人建议
|
23
raaaaaar Apr 15, 2021 via Android
id 你们也加吗?但是 gorm 这种框架会自动加一个 id 字段,需要额外弄么。。
|
24
iseki Apr 15, 2021 via Android
不用
|
25
VeryZero Apr 15, 2021
个人不喜欢加,但是公司要求加。。
因为很多表名本身就自带前缀,字段名再加表名前缀,这是在套娃吗。字段名冲突用别名解决不香吗。 另外坚决反对缩写的,少一两个字符又不会影响数据库性能,是想让别人觉得你很厉害吗? 程序里面也是同理,有些人就喜欢整各种稀奇古怪的缩写变量名,方法名。生怕别人不知道这坨屎是谁拉的。 |
26
masterclock Apr 15, 2021 @feifanhanmc 这是我见过的最差的命名规范
|
27
sutra Apr 15, 2021
如果字段名都需要用表名做前缀,那还需要表干什么?
|
28
statement Apr 15, 2021
原表不加 但关联表肯定要加 不然同一张表不两个 id 和 name
|
29
encro Apr 15, 2021
表名就可以表示自身了,所以没必要加前缀,除非外键 order.user_id 这样的
|
30
siweipancc Apr 15, 2021 via iPhone
挺可怕的,一言不合就骂人:D
|
31
TimPeake Apr 15, 2021
😂
|
32
xuanbg Apr 15, 2021
不加,我手写 sql 也不加。
|
33
rationa1cuzz Apr 15, 2021
考虑到 join 的情况我是都是用 xx_name,其实可以起别名,但是某些情况下不好写(狗头)
|
34
IvanLi127 Apr 15, 2021 via Android
完全没必要,因为库里这冗余的命名,前后端业务、接口、界面都得多写这些。表加这个是不会用 sql 的 alias 么?不写不会影响产出质量
|
35
wangritian Apr 15, 2021
我觉得没必要带,同理包括 api 接口设计
|
36
PerFectTime Apr 15, 2021
外键才会加上描述
对应实体中的属性不加 |
37
passerbytiny Apr 15, 2021 via Android (古老的,或者大型的)数据库设计体系, “列”是直属于数据库,而不是先属于“表”再间接属于数据库的,这样列名必须要能自举。在以前那种到处是“review”,甚至用存储过程代替应用编程的时候,这种从全局层面管理列的架构,应该是有好处的。
后来因为 ORM,或者是回归原始的关系数据模型,列(属性 /字段),只能从属于表(实体 /类)了,列名是否能自举,就不再重要了。 然而以上那些只是副因,如何命名,主要还是取决于开发人 /团队的自制规范。 |
38
clf Apr 15, 2021
加前缀的好处就是避免有些运维直接手写 sql 时忘了加反引号,比如 name 是 sql 的关键字,一些情况下不加反引号就会报错。当然咯,如果全部操作都是在 IDE 和 ORM 框架下操作的,不需要手写 SQL,就没这个问题。
不过一般情况下,外部数据才会加前缀,本体属性不会加前缀。 |
39
Outshine Apr 15, 2021 找不到这样写的必要,join 的时候 table.name 不就行了?
---- 我们这边的习惯就是只有外键会加表名,比如文章表的作者 ID 和分类 ID:creator_id 、category_id --- 另外,#1 @feifanhanmc 的那个命名规范简直烂透了 |
40
cheng6563 Apr 15, 2021
我司是如
SCHL_NAME SCHL_ADDR SCHL_CICO SCHL_CINA |
41
chendy Apr 15, 2021
不加,加了之后反而要写成 school.school_name 就很麻烦
|
42
angeloce Apr 15, 2021
像 id 这种代表数据的唯一主键,考虑到数据流转时各方的理解,是应该加上前缀的而且是全局唯一前缀。 命名常见的字段,如果能考虑到流转时关联表合并、数据层级被打平,也应该加上。
|
43
jucelin Apr 15, 2021
|
44
barbery Apr 15, 2021
这样写法会不会过于冗余。
===== 不会 |
45
l00t Apr 15, 2021
加。
|
46
kkkkkrua Apr 15, 2021
加不加都可,但是碰到明明是数据库的关键字,就得加上了,比如 type
|
47
frankfang1995 Apr 15, 2021 @feifanhanmc 性别能不能别用 sex,gender 懂不懂?
|
48
dayudayupao Apr 15, 2021 @feifanhanmc 你这个是真看不懂,你确定是比较好的命名规范? 就你自己看的懂吧
|
49
aitaii Apr 15, 2021 目前在用的一套感觉比较好的命名规范
n_sol n_ur cd_sx vu_ail nu_pne |
50
dayudayupao Apr 15, 2021 @feifanhanmc 看了这么多评论都是喷你的就舒服了,你这些典型的自己菜还嘴臭
|
51
dayudayupao Apr 15, 2021
@aitaii 好的,马上拿去用
|
52
limuyan44 Apr 15, 2021
school.schoolname 会不会很奇怪。
|
53
romisanic Apr 15, 2021
当前对象表里如果用到了关联其他对象的一些字段,就加上对象名
比如学生表里要加班级 ID,那就叫 class_id,但是学生自己的 ID 就叫 id 同样反过来,如果课程对象要用到学生的 ID 的时候,也应该叫 student_id |
54
dayudayupao Apr 15, 2021
我个人觉得是不加好, 已经有表名区分了
|
55
lzj307077687 Apr 15, 2021
我不加 复制粘贴可以少改几行
|
56
chenmobuys Apr 15, 2021
尽量别用数据库保留字段,加好备注,随你怎么取名
|
57
nekoneko Apr 15, 2021 向一楼学习,目前没用以后也不会用的一套感觉比较好的命名规范
n_s n_u c_s v_a n_p 个人不习惯 user_name 这样的命名方式 user 表已经说明问题了 |
59
feifanhanmc Apr 15, 2021 via iPhone
@frankfang1995 #46 笑了这也能杠
|
60
feifanhanmc Apr 15, 2021 via iPhone
@dayudayupao #49 呦,来这里找优越感啦
|
61
AlexWIT Apr 15, 2021 @feifanhanmc 笑拉了,没十年脑血栓想不出来这缩写
|
62
no1xsyzy Apr 15, 2021
@feifanhanmc 匈牙利命名法复刻,没想到这里还能看到不识好歹的
|
63
WilliamYang Apr 15, 2021 via iPhone
代码整洁之道,多看看书,你就会有答案了
|
64
morimi2026 Apr 15, 2021
@feifanhanmc 命名要避免非通用的缩写,这样才有可读性。可读性高就维护起来就容易。
|
65
star7th Apr 15, 2021
建议写,方便一眼看出这是什么字段。
|
66
Rwing Apr 15, 2021 不加,另外一楼真的笑到我了
|
67
ychost Apr 15, 2021
不加,join 的时候 as 一下就好了
|
68
deepmindlab Apr 15, 2021 @feifanhanmc 这命名规范比我今天的粑粑还臭
|
69
newtype0092 Apr 15, 2021 @feifanhanmc V2 点赞功能太不人性化了,自己的点赞有提醒,别人喷自己的点赞却没有,这样想一个一个喷回去太麻烦了,咱们一起给站长提建议加上这个功能吧🐶
|
70
tairan2006 Apr 15, 2021
不用加,不过如果是为了避免数据库的保留字,可以加前缀
|
71
weiwenhao Apr 15, 2021
建议都加上前缀,下面推荐一些好的写法
建议 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 (获取商品评论) |
72
caixiaomao Apr 15, 2021
没必要 一般表名会体现 但是在关联表之类的会加上
|
73
CantSee Apr 15, 2021
我们一般都是固定的:比如活动表.是一个固定前缀加英文 XXX_ACTIVE_BASE, 如果是活动条件表就是 XXX_ACTIVE_LIMIT
|
74
wupher Apr 15, 2021
一般不需要。
除非你进行的是超大型项目,类似运营商 CRM 这类。表结构大,数据多,未来会上 N 多个 BI 、分析系统,主表如用户或者交易还经常会被各种联表、过程进行查询。上述情况,推荐添加。实际上,电信以及相应厂商的规范里面也写的很清楚。 正常一般应用,我是觉得 User.name 比 user.userName 好多了。 |
75
lvtuyukuai Apr 15, 2021 1 楼赶紧回 M78 星云吧,地球已经没有怪兽了。
|
76
way2create Apr 15, 2021
个人不喜欢加 特别是 id
|
77
ipwx Apr 15, 2021
@c6h6benzene 如果只是 join,那么别名用 unit & user 不就行了。。。
|
78
dayudayupao Apr 15, 2021
一楼要是不骂人麻瓜,我觉得作为一种讨论倒也没什么,都是互相学习过来的,关键是自己滂臭的命名别人反驳一下都不行....
|
79
id4alex Apr 15, 2021
好处是以你眼就可以看出来这个字段是来自哪个表, 坏处是太啰嗦.
大家一起权衡 |
80
lithiumii Apr 15, 2021
用户表 user
name, school_name, ... 学校表 school name, ... 某个不知道啥既有用户又有学校的表 user_name, school_name, ... |
81
knightdf Apr 15, 2021
没必要加,表名单数形式,字段直接属性名就可以了,不用前缀
|
82
raycool Apr 15, 2021
一楼这命名真的太差了。
|
83
caroline1022 Apr 15, 2021
我个人倾向于当某表在大部分使用场景下都是联合查询的时候,会在前面加前缀,以免有的时候要从 entity 转成 view 返回给前端的时候无法使用统一写好的属性赋值工具而必须手动 set
|
84
lazyDaddy Apr 15, 2021 一楼笑死了
|
85
nobodyknows Apr 15, 2021
一时间不知道一楼是不是认真的。
|
86
huijiewei Apr 15, 2021
为什么要加
要不把数据库名字也加上,跨库查询也是需要的嘛 |
87
cp19890714 Apr 15, 2021
user 表
id name school 表 id name 如果这些字段在其他表中使用则 user_id user_name school_id school_name |
88
zxCoder Apr 15, 2021
@masterclock cod 和 vlu 我是真没见过。。。。
|
89
cloudzhou Apr 15, 2021 @feifanhanmc 这缩写简直莫名其妙,我一向建议,长点就长点,可读性好就可以
|
90
strive Apr 15, 2021 @feifanhanmc 说真的,这命名没眼看
|
91
mx8Y3o5w3M70LC4y Apr 15, 2021 via Android #1L 大亚心了,blk 了
|
92
mx8Y3o5w3M70LC4y Apr 15, 2021 via Android 1L 简直也马彳业母瘤啊
|
93
young1lin Apr 15, 2021 1L 在教坏新手,这特么缩写就少了一个字母,你当是 HBase 呢,colunm name 要尽量简短,普通的 RDBMS 就直接用对应的名称就行了。不要写成 school_name,直接写 name 就行了,除非是在中间表,或者其他的表中,作为外键(实际开发不用外键)的存在时候,就要写成 school_name 。尽量见明知意,除非你是用的 HBase 这种,或者其他对字段长度有比较大的优化要求的数据库。
|
94
hyqCrystal Apr 15, 2021
看个人习惯 我喜欢加
|
96
seakingii Apr 15, 2021
我会加.
我认为表名字段名长一点没关系,直观识别意义比较重要. |
97
towry Apr 15, 2021
> To make your code more readable, it is better to have your code be explicit (that is, clearly state something even if it might be obvious) rather than implicit (that is, leaving it up to the person reading code to know how it works without outright telling them).
想屏蔽 1L 那样的人 |
98
Duolingo Apr 15, 2021 via Android
一楼老魔法师了🤣
|
99
listenerri Apr 16, 2021
我也喜欢加
|