比如数据库中的表里的字段, 0 代表男, 1 代表女,返回给前端!

2019-12-06 03:35:37 +08:00
 gebishushu
比如数据库中的表里的字段,0 代表男,1 代表女,返回给前端
直接返回男和女好,还是直接返回 0 和 1 好
我想着是返回男和女后期增加人妖 前端不需要匹配了,如果返回 0 和 1 的话,后期增加人妖为 2 的话,前端还需要加匹配,对嘛?
5086 次点击
所在节点    问与答
38 条回复
mayx
2019-12-06 10:10:46 +08:00
@Chingim 假如后端由于某些原因存储了一个 html 标签,前端不假思索的插了进去,那么这个标签就会被执行,当然如果后端非常安全,保证数据不会被篡改,那么倒是也无所谓
Chingim
2019-12-06 10:12:41 +08:00
@w292614191 Male 是 0 还是 female 是 0 ?如果是多个字段都是 01 呢,你能马上明白 0123 分别指的是什么吗?
iCyMind
2019-12-06 10:17:47 +08:00
@mayx 你说的这个和接口返回什么没什么关系, 和数据库怎么存有关系
tgich
2019-12-06 10:18:38 +08:00
怎么着都行,软件行业没有关于这方面的规定
w292614191
2019-12-06 10:57:39 +08:00
@cyndihuifei
@Chingim
前端:
{field:'sex'},
难道你们前端都是 {1,0},{male,female}。
不应该是键来表示这个字段的含义吗?而是通过值来表示??
wc951
2019-12-06 11:22:31 +08:00
你确定你的接口只给前端用?
shintendo
2019-12-06 11:31:24 +08:00
以什么形式展示,应该是前端的事情。你返回个男女,乍看是方便前端直接用,如果后期改需求了,要求显示男生 /女生,先生 /小姐,♂/♀,西装小人图标 /裙子小人图标,蓝色头像背景 /粉色头像背景,怎么办?前端还得根据你传的“男”/“女”去做映射后才能用,那为什么不直接传 0/1 呢?
wwcxjun
2019-12-06 11:49:17 +08:00
我是传 1/2 0 作为默认值 另外还会传 男 /女 至于怎么用 那就是前端的事了。
Chingim
2019-12-06 12:20:05 +08:00
@w292614191 这跟展示无关。
比如数据传输用

{
“gender”: 0,
“role”: 2
}

抓包或者看日志,你能马上知道是这个是男还是女吗?代码里的逻辑写 if (gender === 0) ,可读性好吗?

如果数据传输用

{
“gender”: “male”,
“role”: “admin”
}

那是不是可以解决上面的问题?
imn1
2019-12-06 13:13:33 +08:00
0/1,性别不仅用在一种场合,多种场合,称呼不同都可能用到性别判断
而且,后端返回,除非特定内容(如文章),最好不要用需要编码识别的方式,尽可能 ASCII 搞定
lxml
2019-12-06 13:15:46 +08:00
说 0/1 的都怎么想的……一点接口设计思维都没有,除了嵌入式等或者极致性能场合,一切都应该以可读性可维护性为基准。
tuean
2019-12-06 16:24:42 +08:00
个人经验 遇到这种情况一般会这么干
{
gender: 0/1
genderValue: 男 /女
}
多加个展示字段,通过枚举变更后全部返回,爱用哪个用哪个
heiybb
2019-12-06 16:33:09 +08:00
最近看到个 GenderAPI 根据名字判断性别(仅限英文名
fanpei0121
2019-12-06 17:33:41 +08:00
返回 0 和 1,前后端都分离了,为什么前端不能自己决定展示什么,为什么后端还要负责考虑前端需要怎么显示?
文档写清楚就行了,前后端互不干扰最好
w292614191
2019-12-06 22:36:01 +08:00
@Chingim
所以就变成了
if (gender === 'male') ??
有何区别?
Chingim
2019-12-07 08:42:35 +08:00
@w292614191 如果你不认可代码可读性的重要性,那的确没啥区别,我也只是鸡同鸭讲
techme
2019-12-07 14:07:20 +08:00
所以说人妖是需求变动的幕后黑手,哈哈
EscYezi
2019-12-07 14:34:49 +08:00
这个不得看前端想要哪种么……

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/626376

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX