![]() | 1 BaseException 2023-08-13 19:28:38 +08:00 via iPhone 单数 |
2 jlmzzz 2023-08-13 19:29:33 +08:00 没见过用复数的 |
3 lanlanye 2023-08-13 19:31:12 +08:00 via iPhone 我用复数,实际上随你喜欢…… |
![]() | 4 msg7086 2023-08-13 19:32:04 +08:00 Rails 里都用的复数。一张数据表里存了多条数据也就是多个对象,用复数很正常。 |
5 fox0001 2023-08-13 19:33:05 +08:00 via Android 单数 |
6 thinkershare 2023-08-13 19:35:37 +08:00 ![]() 无关紧要的事情, 有时候用单数, 有时候用复数, 看心情. |
![]() | 7 MIUIOS 2023-08-13 19:38:29 +08:00 老外喜欢用复数, 单用单用复都没啥区别。。 |
![]() | 8 msg7086 2023-08-13 19:39:47 +08:00 ![]() 一般的规则是不要混用单复数,要么全用单数,要么全用复数。确定下来用哪种以后,就一直用这种,不要换。 |
9 jaynsw 2023-08-13 19:50:12 +08:00 via Android ![]() ,因表的是型。例如“用” |
![]() | 10 kongkx 2023-08-13 19:54:33 +08:00 via iPhone 项目内统一规范就好,php laravel 是 the "snake case", plural name 。js prisma 默认直接用 model name |
11 kkwa56188 2023-08-13 20:15:21 +08:00 ![]() 在 RESTful API 里, 资源用复数 例如 items/item_id. 这样一看到 名词复数 就知道是一个资源的集合 在关系数据库里, 表名 没有那么强烈的要求用复数, 因为不会出现 像上例 一长串 url 里 容易 混淆的情况. 反而关系数据库里 讲求的 一眼看出 是 实体表还是关系表, 所以可以做以下 最佳实践: 1. 实体表 用单数, 甚至可以加上 _tbl 表示是实体表, 例如 : ITEM 或者 ITEM_TBL 2. 关系表 用上两(多)个实体名称, 甚至 可以加上 _rel 表示是关系, 例如: Order_Item, 或者 Order_Item_Rel |
![]() | 12 Leon406 2023-08-13 20:17:59 +08:00 ![]() |
![]() | 13 lhbc 2023-08-13 21:13:06 +08:00 via Android 单数 因为指的是种类不是数量 User 指的是用户 Users 指特定的多个用户 |
![]() | 14 cpstar 2023-08-13 21:20:30 +08:00 都有道理: User ,这个表存储的东西是用户 Users ,这个表里存储了很多用户 |
![]() | 15 lingo 2023-08-13 21:23:17 +08:00 ![]() 我用单数是因为不是每个词我都知道正经的复数怎么拼 反正公司项目随项目本身,自己的项目无所谓。 |
![]() | 16 veike 2023-08-13 21:24:12 +08:00 规范用什么就用什么! PHP Laravel 里的默认是复数。 |
![]() | 18 isbase 2023-08-13 21:28:58 +08:00 单数,表名表示的是存储的内容是什么,不是有多少个 |
![]() | 19 Xusually 2023-08-13 22:01:18 +08:00 via iPhone 看约定规范吧,系统里都统一就行了。 |
![]() | 20 zjp 2023-08-13 22:03:43 +08:00 不可能因为表名是单数就认为表里只有一条数据,所以复数没有提供什么多余的信息 |
21 zm2020 2023-08-13 22:06:55 +08:00 根据之前用 Laravel 框架开发来看,里面默认的表名都是复数 |
![]() | 22 picone 2023-08-13 22:55:49 +08:00 ![]() 这个只要有统一规范就好。切勿一个人用单数,一个人用复数,写起代码来还得查一下是单数还是复数 |
![]() | 23 akira 2023-08-13 23:17:36 +08:00 在一个项目里面 统一就行,具体看你喜欢 |
![]() | 24 IvanLi127 2023-08-13 23:41:17 +08:00 via Android 我用了几个语言的 ORM ,一般是复数。 |
![]() | 25 IvanLi127 2023-08-13 23:44:53 +08:00 via Android 表不是类,是记录行的集合。这样想就得是复数了。再怎么想表是 Array<Apple> 这样的存在吧。。。 |
26 leonshaw 2023-08-14 00:21:56 +08:00 单数,不然当要做一些代码生成时就只能一个一个表列出来,或者写一堆单复数转换的规则和例外。 |
![]() | 27 lingo 2023-08-14 00:37:31 +08:00 @kkwa56188 还是你这个实在,区分实体表和关系表才是有用的。。单数复数讲真没提供一丝有用的信息(除非应用层有约定)。。统一就行了。 |
![]() | 29 msg7086 2023-08-14 04:59:47 +08:00 @leonshaw 框架里早就有成熟的单复数转换了。 Rails 从初版 1.0 起就有单复数转换,所以一直可以无压力使用复数表名。 如果你用的框架没有单复数转换,那的确用单数表名会比较方便。 @kkwa56188 使用成熟的 ORM 以后一般不需要直接对接数据库,直接用 ORM 内置规则生成数据表就行了。 比如你建一个 items 表,建一个 orders 表,然后只要 create_join_table :orders, :items 就能根据内置规则自动生成多对多关系表。关系表的名称会是 items_orders (每个关系表按照字母顺序排列,免得搞不清是 orders_items 还是 items_orders ),但这个表对程序员是不可见的,平时还是通过操作对象来获取关联数据。 (当然,每个人/组/公司都有自己的最佳实践,自己用起来舒服就行,不需要跟着别人乱改。) |
30 kkwa56188 2023-08-14 06:09:43 +08:00 盲猜一下, 口口声声 ORM 的, 是不是 leetcode 的 SQL 题都刷不过中级? 开玩笑的. 狗头 |
31 jlmzzz 2023-08-14 06:28:41 +08:00 @FightPig 看来单复数都可以并且都有不少再用,我最近 Django 用的多,教程什么的也单数居多。可能这个问题需要指定语言或框架才比较意义,否则就随开发者喜好单复数都可以。 |
![]() | 32 mytsing520 PRO 随我喜欢。 不过,一旦确定,后面也遵循这个规则。 |
![]() | 33 itechify PRO 能跑就行,单数复数都行,统一一种风格 |
![]() | 34 loading 2023-08-14 08:23:52 +08:00 你可以用全拼名,没有单复数,哈。 |
35 uxstone 2023-08-14 08:32:51 +08:00 在实际业务中有些表名是直接用的汉语拼音,所以统一用单数。 |
![]() | 36 chenyu8674 2023-08-14 08:38:44 +08:00 单数 有些复数的英文不是简单加 s 的,有时容易第一眼看不出来 |
![]() | 37 netnr 2023-08-14 08:49:34 +08:00 via Android 我目前在用的一种规则 sys_users sys_user_role |
![]() | 38 docx 2023-08-14 08:58:30 +08:00 via iPhone 用原型,表示内容是什么 |
39 ccppgo 2023-08-14 09:05:13 +08:00 非母语就不跟风了, 跟楼上一样, 要是看不懂复数还得查一下啥意思, 老老实实单数代表类型 |
![]() | 40 varzy 2023-08-14 09:15:39 +08:00 via iPhone 我习惯按照 laravel 规范,很优雅~ |
![]() | 41 tomatocici2333 2023-08-14 09:17:09 +08:00 @Leon406 这思维导图可以分享一下吗 老哥 |
![]() | 42 wupher 2023-08-14 09:18:33 +08:00 看团队使用的规范,如果是你自己的独立项目,可随意。 Rails 系一般使用复数 |
43 dddd1919 2023-08-14 09:19:12 +08:00 如果使用的技术栈支持复数那当然是复数,遵照 restful 风格,比如 rails ,框架本身有单复数转换规则,不容易拼错 如果不支持,单数还是更方便一点 |
![]() | 44 henryhu 2023-08-14 09:29:54 +08:00 复数 |
![]() | 45 Govda 2023-08-14 09:40:08 +08:00 当然是复数,user = users::find(1); 用户(多个)里面找 ID 是 1 的 英文有复数 那默认 user 是 object ,users 是 iterable 这是中英文的区别,如果用中文就没有单复数区别了,用户就是用户,总不能表明叫“用户们”吧 |
46 nothingistrue 2023-08-14 09:47:43 +08:00 先有表( Table ),后又记录( Rows ),那表名就是专有名词,须单数。 如果没有表,直接就是数据集合(典型的就是 Excel 数据),那表名就只是一个标记,应视数据集合本身的单复数性质来决定其单复数,通常是复数。 |
![]() | 47 Felldeadbird 2023-08-14 09:47:51 +08:00 我建议是单数,你作为新人入职公司,业务是读取用户表。这时候你写代码首先想到的是 users 还是 user ? 总的来说还是要看公司规定。 |
![]() | 48 qiumaoyuan 2023-08-14 09:48:28 +08:00 哈哈哈哈哈 |
![]() | 49 echoZero 2023-08-14 09:49:44 +08:00 go ent 默认的是复数,单数要指定 |
50 xz410236056 2023-08-14 10:09:32 +08:00 都 2023 年了,还在纠结回字的写法 |
51 Huelse 2023-08-14 10:23:30 +08:00 不可数的用单数,可数的用复数。 表里有多少数据你是不知道的,但你取出来的时候是 limit 的。 |
![]() | 52 puras 2023-08-14 10:29:54 +08:00 用单数,还加了前缀。。。 |
53 kneo 2023-08-14 12:18:03 +08:00 via Android 随便,统一就行。一般来说使用单数会简单点。 |
![]() | 54 Daniel17 2023-08-14 12:25:44 +08:00 看你们规范,又不影响性能 |
![]() | 55 largezhou 2023-08-14 12:45:14 +08:00 之前用 laravel ,按约定是用复数,后面觉得英文复数又不能简单的加 s ,还不如单数清晰 |
![]() | 56 hjq632233317 2023-08-14 13:41:23 +08:00 单数 那用复数岂不是每个表就叫 xxxs ,很烦复数的 s 结尾,包括字段,有时候打代码都忘了自己设置的是负数还是单数了 还得再看一遍表 或者就是忘了自己设置的是复数 然后报错 很烦 |
![]() | 57 coolair 2023-08-14 13:49:36 +08:00 国外的项目都是复数,国内的项目乱七八糟,怎么用的都有,自己看着办。 |
![]() | 58 manasheep 2023-08-14 13:53:59 +08:00 ![]() 我觉得复数本来就是英语的糟粕,就跟汉语无意义的量词一样,做开发没必要还照搬这个。 |
![]() | 59 8355 2023-08-14 13:58:11 +08:00 个人理解表名应该是名词 不是复数 只有查多条数据的时候变量才用复数 |
![]() | 60 manasheep 2023-08-14 14:13:23 +08:00 日程表/日程安排表 - Schedule/Planner 任务清单 - To-do List 会议议程表 - Meeting Agenda 会议记录表 - Meeting Minutes 项目计划表 - Project Plan 项目进度表 - Project Timeline/Progress Report 预算表 - Budget Sheet 费用报销表 - Expense Report 销售报表 - Sales Report 客户信息表 - Customer Information Sheet 员工信息表 - Employee Information Sheet 考勤记录表 - Attendance Sheet 学习计划表 - Study Plan 笔记表格 - Note-taking Template 目标设定表 - Goal Setting Worksheet 问题追踪表 - Issue Tracking Sheet 数据收集表 - Data Collection Form 调查问卷 - Survey Questionnaire 评估表 - Evaluation Form 学习反馈表 - Feedback Form 看看这里有多少表格名称用的是复数形式? 而且编程是实用为先,复数尽可能不用,即使在处理多个实例时,也不一定要用复数表示变量和参数,因为这有可能给搜索造成障碍。 |
![]() | 61 FightPig 2023-08-14 14:33:11 +08:00 @jlmzzz 这倒是,我主要一直用 rails 了,所以一直按 rails 的习惯,不管用啥写,表名全是复数的。只要团队遵循规则就行了,随便怎么搞。还接过好多项目二开,里面表直接拼音缩写的 |
![]() | 62 AV1 2023-08-14 14:42:15 +08:00 我是避免用复数形式。如果是表示多个项目的集合,用 xxList 、xxArr 这样的后缀。 因为复数形式还得考虑英语的不规则变化,比如 activity vs activities foot vs feet ,不够统一。 |
![]() | 63 libook 2023-08-14 14:51:04 +08:00 英语的复数是一种不可靠的变形规则,遇到特殊变形和单复同形的,就会很麻烦。 可以采用单数形式,或者单数+List/Collection/Array 等后缀,具体采取哪种方案需要团队定个统一标准。 |
![]() | 64 kernelpanic 2023-08-14 14:56:53 +08:00 单数 model 一般跟表名对应, 如果 t_items, 变成了 Items, 那么 new Items() 是啥玩意? addItems 呢? |
65 bzj 2023-08-14 15:04:14 +08:00 用拼音怎么说 |
66 fengpan567 2023-08-14 15:06:36 +08:00 随便 |
![]() | 67 maxssy 2023-08-14 17:26:34 +08:00 /div> 国人喜欢用单数, 外国人喜欢用复数 我站国人 实际上我觉得复数这个语法都 TM 是扯淡 |
![]() | 68 Leon406 2023-08-14 18:41:29 +08:00 @tomatocici2333 #41 自己看完阿里规约 ,总结才会印象深刻 个人笔记 并不适合所有人, 周末花个一天就能有自己的思维导图 |
![]() | 69 superchijinpeng 2023-08-14 18:43:32 +08:00 单数 |
![]() | 70 superchijinpeng 2023-08-14 18:43:53 +08:00 可以看下 TPC-DS 或者 TPC-DS 里的 |
![]() | 71 cquan 2023-08-14 23:37:18 +08:00 小写加下划线就好 |