Sim, adicionar um prefixo que denota o tipo do objeto é um problema e desnecessário . Porque,
- Às vezes, os objetos começam a vida como algo, mas acabam se tornando outra coisa . (por exemplo, a tabela
tblXxx
foi dividida em tblXxxY
e tblXxxZ
por algum motivo e substituída por uma visão que une as duas novas tabelas. Agora você tem uma visão chamada tblXxx
).
- Quando você digita
tbl
no editor, o recurso AutoCompletar fica suspenso por 45 segundos e mostra uma lista de 4000 entradas.
Mas...
Eu vou bancar o advogado do diabo e dizer algo que outros já aconselharam. Existem alguns casos raros em que um sufixo / prefixo pode ser útil, e aqui está um exemplo da organização em que trabalho.
Temos um sistema ERP baseado em entidade, onde a lógica de negócios é escrita em Oracle PL / SQL. Tem quase duas décadas, mas ainda é um sistema muito estável (este não é um sistema legado. Estamos desenvolvendo-o continuamente).
O sistema é baseado em entidades e cada entidade associa uma tabela, várias visualizações, vários pacotes PL / SQL e uma série de outros objetos de banco de dados.
Agora, queremos que os objetos pertencentes à mesma entidade tenham o mesmo nome, mas que sejam distinguíveis de seu objetivo e tipo. Portanto, se tivermos duas entidades nomeadas CustomerOrder
e CustomerInvoice
, teremos os seguintes objetos:
- Tabelas para armazenar dados [
TAB
sufixo]:
CUSTOMER_ORDER_TAB
CUSTOMER_INVOICE_TAB
.
- Exibições usadas pelos clientes [Sem sufixo]:
CUSTOMER_ORDER
CUSTOMER_INVOICE
.
- Interface para operações básicas; (Pacotes PL / SQL) [
API
sufixo]:
CUSTOMER_ORDER_API
CUSTOMER_INVOICE_API
.
- Geradores de relatórios; (Pacotes PL / SQL) [
RPI
sufixo]:
CUSTOMER_ORDER_RPI
CUSTOMER_INVOICE_RPI
.
- Índices para chaves primárias [
PK
sufixo]:
CUSTOMER_ORDER_PK
CUSTOMER_INVOICE_PK
.
- Índices secundários [
IX
sufixo]:
CUSTOMER_ORDER_XXX_IX
CUSTOMER_INVOICE_XXX_IX
(onde XXX
descreve o uso do índice).
- ... e assim por diante.
Essa é realmente uma forma de aplicativos húngaro (observe que o mesmo tipo de objetos pode ter sufixos diferentes, dependendo da finalidade). Mas, com um sufixo em vez de um prefixo. Não posso lhe dizer o suficiente como esse sistema é tão fácil de ler. O IntelliSense realmente funciona porque, em vez de digitar TBL
e obter 4000 resultados, eu posso digitar Customer
e obter todos os objetos pertencentes às entidades nomeadas Customer*
.
Então, aqui eu mostrei como os metadados podem ser úteis. O objetivo é ter um conjunto relacionado de objetos de banco de dados identificáveis por um único nome, mas diferenciá-los com base em seus objetivos .
Dito isto, se você não possui esse tipo de sistema, não há uso de prefixar ou sufocar o tipo de objeto .
Note que não temos sufixos como usado _table
, _package
ou _view
(ou seja, o tipo do objeto). Por exemplo, (3) e (4) são pacotes PL / SQL, mas usam um sufixo diferente. É o mesmo para (5) e (6), os quais são índices. Portanto, o sufixo é baseado no objetivo e não no tipo .
Class
?