Origem do prefixo SC5/C5 (pedido de venda)

Por que pedido de venda no Protheus se chama SC5 e os campos comecam com C5_? Vem do tempo do Siga Advanced em DBF.

Todo dev Protheus aprende rapido: pedido de venda = SC5, cliente = SA1, produto = SB1. Mas por que essa nomenclatura estranha? De onde vem o C5, A1, B1?

Padrao S* + letra + numero

Praticamente toda tabela do Protheus segue o padrao S + letra + numero (1 char):

Ate SZ* aproximadamente.

O 'S' do Siga

O S de todas as tabelas vem de Siga. Lembra do nome original do ERP? Antes de ser "Protheus", a Microsiga (empresa fundadora) chamava o produto de "Siga Advanced". Cada tabela do core do Siga ganhou prefixo S.

O alfabeto agrupa por dominio

A letra apos o S define o dominio. Foi planejado em ordem mais ou menos alfabetica conforme novos modulos eram criados:

Os campos: prefixo da tabela

Cada campo comeca com o prefixo da sua tabela:

Por que? Em DBF (xBase original), nao havia SELECT a.id, b.nome FROM .... Voce abria multiplas tabelas ao mesmo tempo e referenciava campos diretamente. Sem prefixo, conflitaria: SA1 e SA2 ambos teriam campo COD e voce nao saberia qual era qual.

O prefixo da tabela no campo eliminou ambiguidade.

Numeracao

O numero apos a letra (1, 2, 5, etc) e a ordem cronologica de criacao OU agrupamento por subdominio. Por isso temos:

Fossil que ficou

30 anos depois, em SQL Server com queries JOIN avancadas, o padrao continua. Mudar significaria refatorar milhoes de linhas em milhares de clientes. Vai ficar pra sempre — e dev Protheus precisa decorar.

Veja também