
比如一张 User 表,主键命名为 id 还是 userId 好呢?
每张表都叫 id ,而不叫 xxxId,这样即使表名比较复杂也没关系。
用户表跟实体映射时,如果表中是 user_id ,实体变量叫做 userId ,显然更清楚一点。而且也方便一些工具生成代码
还听说了一些其他方案:
请教大家的习惯的方案,目前我的方案是,数据表叫做 id ,实体对象变量叫做 userId 。外键叫做 user_id
另外请教大家:有没有一些实际的设计规范可以参考的呢?
1 ysc3839 2024 年 5 月 25 日 via Android id |
2 ysc3839 2024 年 5 月 25 日 via Android |
3 laikicka 2024 年 5 月 25 日 规定好就行. 别一下是 id 一下是 userId |
4 fengsi OP @ysc3839 #2 感谢前辈回复,学到了。我多问一句,变量名我用 userId 的原因是为了返回数据给前端考虑,返回 userId 前端就可以很清楚的这是 user 的 id 了,前辈是推荐直接返回 id 吗? |
5 ysc3839 2024 年 5 月 25 日 via Android |
6 adoal 2024 年 5 月 25 日 表内字段一般没必要带上表名作前缀 |
7 Vegetable 2024 年 5 月 25 日 实践上来看都是 id 。 `user`.`user_id`这种命名方式让我觉得很奇怪且多余 |
8 godleon/a> 2024 年 5 月 25 日 客观评价一下吧,我觉得应该根据业务来说; 以 mysql 为例; 一张表使用 uid mid sid 或者 id 作为主键,其实没什么性能上的区别,哪怕你映射实体不过是一个别名而已,从代码设计上,你用 userId 和 id 我觉得没啥标准的吧; 但是在你的业务,存在拆表 分库分表 分布式等架构,这个时候你每个表都有一个 id 然后再有一个 业务的 uid 或者 mid sid 这类是这个业务的表示, 当你有分布式跨库全局唯一 ID 或者设计行锁 表锁 分布式事务等 这个 id 的存在就有很大意义了; |
9 ksc010 2024 年 5 月 25 日 一般用 id ,但是 user 这个表比较特殊,习惯用 userid |
10 9dP06m83vIV00l72 2024 年 5 月 25 日 user.id order.user_id |
11 NewMoorj 2024 年 5 月 26 日 我用 user_id ,这样全表命名都比较统一,所有 ID 之前都加命名,方便识别。 |
12 foolishcrab 2024 年 5 月 26 日 via iPhone 显然是 id 好,实体类的字段是不可能脱离主体来使用的,加上 user 并无意义。 延伸一下,有些人喜欢 xxxXxxxxXxxxResponseType.responseStatusType.responseStatusMetaType 而不是 xxxxXxxxResponse.status.meta 前者看着恶心,代码逻辑还没开始写就换行了 |
13 kkwa56188 2024 年 5 月 26 日 大项目, 表多, 关系复杂的, 用 user_id, 参见 数据库老祖宗 Oracle 的 E-business Suite, 或者大型 ERP 顶流 SAP, 的设计实践. 没做过的就不要说了. 小项目 小数据库的, 无所谓 怎么都行. |
14 hendry 2024 年 5 月 26 日 via Android UID 可以吗不 |
15 neptuno 2024 年 5 月 26 日 via iPhone 我一般用 id ,之前有人跟我说过全部用 id ,联表可能可读性差一点,不过我觉得还行,联表的时候,别名写的清楚一点就好了。 |
16 BeijingBaby 2024 年 5 月 26 日 user.user_id ,这样很蛋疼,不如 user.id |
17 mwjz 2024 年 5 月 26 日 每一个表都是实体, 用 id 就代表当前实体的主键,规则清晰。 连表外键用 userId ,xxxId, 如果都用 xxxId ,会很疑惑 |
18 wanguorui123 2024 年 5 月 26 日 via iPhone 用 User ID 比较方便,用 ID 比较规范,有时候方便比规范重要 |
19 akira 2024 年 5 月 26 日 按公司定的规范来。。 |