搜索

首页  >  问答  >  正文

mysql - 表名称前缀到底有啥用?

那么多公司的项目都在设计表的时候给表名称加个前缀单词,但是这到底有啥用呢,整个项目看下来没发觉这有用到的

高洛峰高洛峰2757 天前1389

全部回复(10)我来回复

  • 天蓬老师

    天蓬老师2017-06-09 20:12:57

    给表名加前缀,之前是一种比较流行的方式。现在的趋势是放弃添加前缀,因为它带来的好处,远小于带来的问题。很多时候跨库的设计,比表前缀的设计来的更灵活和实用,而且前缀设计(尤其是在混合用的情况下)带来的一些困惑和问题却是很多新手最大的苦恼。所以请慎重。

    回复
    0
  • 浴后重生

    浴后重生2017-06-08 17:27:26

    便于管理

    回复
    0
  • 大家讲道理

    大家讲道理2017-06-08 11:05:32

    多个项目放在同一个数据库就会有用了

    项目1用户表 - p1_user
    项目2用户表 - p2_user

    这么一说你就明白了

    回复
    0
  • 淡淡烟草味

    淡淡烟草味2017-06-08 11:05:32

    设计习惯而已。通常是在同一个库中区分不同的系统表而建立的。

    如图示例,没前缀的是后台管理系统的表。带wms前缀的是wms系统的表

    回复
    0
  • 高洛峰

    高洛峰2017-06-08 11:05:32

    讲道理,还是按照数据库来划分不同类型的表比较合适,前缀这玩意儿确实累赘

    回复
    0
  • 代言

    代言2017-06-08 11:05:32

    前缀很有用的,比如我想知道所有关于user的表,直接show tables like '%user%'就可以了,用mysql命令行的就知道了

    尤其是很多插件或者模块的项目,加了这些前缀还有利于数据库表的批处理等操作

    回复
    0
  • phpcn_u1582

    phpcn_u15822017-06-08 11:05:32

    用来区分所有项目使用同一个数据库中不同项目的数据表

    回复
    0
  • phpcn_u1582

    phpcn_u15822017-06-08 11:05:32

    表名称的前缀只是一个命名规范,对于功能实现没有影响。

    在比较复杂的系统中,通过表名前缀可以大概了解到表所在的模块和分类,这样做日常开发和运维的时候看起来比较方便,新人了解系统数据结构的时候也有章可循。

    个人比较赞同这种做法,成本很低,但对后期的运维方便,为什么不做呢?

    回复
    0
  • 为情所困

    为情所困2017-06-08 11:05:32

    数据表在一个数据库时,而且数据表比较多的时候区分是很直接的

    回复
    0
  • 黄舟

    黄舟2017-06-08 11:05:32

    一个项目有100多张表以上时,你会懂为什么需要用到.

    理想的是user_tabel1可以写成user.table1(建立多库)
    问题是在很多开发人员对数据库的认识也只是简单的增删改查,包括很多框架也是(只能连接一个库)

    打个比方,oracle最经典的scott实例.
    scott拥有部门与部门人员的名单, hr(另一个实例)拥有部门列表名单. 还有一个产品实例拥有产品列表名单.
    hr实例拥有对scott.emp的select权限但是没有update权限

    个人觉得这样的设计对数据的安全性(当一个实例被攻击破解时不会暴露全部数据),逻辑分明性有很大的提高,但同时也要求开发人员对数据库有更多的理解和掌握.
    但往往我们看到的是,开发人员所有的表放在一个库里.权限的控制也只是从业务逻辑上来控制.

    (以上都是个人的理解)

    回复
    0
  • 取消回复