Heim > Fragen und Antworten > Hauptteil
So viele Unternehmensprojekte fügen beim Entwerfen der Tabelle ein Präfixwort zum Tabellennamen hinzu, aber welchen Nutzen hat das? Wenn ich mir das gesamte Projekt ansehe, fand ich es nicht nützlich
天蓬老师2017-06-09 20:12:57
给表名加前缀,之前是一种比较流行的方式。现在的趋势是放弃添加前缀,因为它带来的好处,远小于带来的问题。很多时候跨库的设计,比表前缀的设计来的更灵活和实用,而且前缀设计(尤其是在混合用的情况下)带来的一些困惑和问题却是很多新手最大的苦恼。所以请慎重。
代言2017-06-08 11:05:32
前缀很有用的,比如我想知道所有关于user
的表,直接show tables like '%user%'
就可以了,用mysql
命令行的就知道了
尤其是很多插件或者模块的项目,加了这些前缀还有利于数据库表的批处理等操作
phpcn_u15822017-06-08 11:05:32
表名称的前缀只是一个命名规范,对于功能实现没有影响。
在比较复杂的系统中,通过表名前缀可以大概了解到表所在的模块和分类,这样做日常开发和运维的时候看起来比较方便,新人了解系统数据结构的时候也有章可循。
个人比较赞同这种做法,成本很低,但对后期的运维方便,为什么不做呢?
黄舟2017-06-08 11:05:32
一个项目有100多张表以上时,你会懂为什么需要用到.
理想的是user_tabel1可以写成user.table1(建立多库)
问题是在很多开发人员对数据库的认识也只是简单的增删改查,包括很多框架也是(只能连接一个库)
打个比方,oracle最经典的scott实例.
scott拥有部门与部门人员的名单, hr(另一个实例)拥有部门列表名单. 还有一个产品实例拥有产品列表名单.
hr实例拥有对scott.emp的select权限但是没有update权限
个人觉得这样的设计对数据的安全性(当一个实例被攻击破解时不会暴露全部数据),逻辑分明性有很大的提高,但同时也要求开发人员对数据库有更多的理解和掌握.
但往往我们看到的是,开发人员所有的表放在一个库里.权限的控制也只是从业务逻辑上来控制.
(以上都是个人的理解)