AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / dba / Perguntas / 13730
Accepted
John Isaiah Carmona
John Isaiah Carmona
Asked: 2012-02-24 00:01:05 +0800 CST2012-02-24 00:01:05 +0800 CST 2012-02-24 00:01:05 +0800 CST

Nome da tabela plural vs singular

  • 772

Como devo nomear minhas tabelas ao criar um novo banco de dados?

Singular: Clientou Plural: Clients?

database-design naming-convention
  • 9 9 respostas
  • 38997 Views

9 respostas

  • Voted
  1. Best Answer
    gbn
    2012-02-24T00:10:52+08:002012-02-24T00:10:52+08:00

    Você decide. Apenas seja consistente embora.

    Pessoalmente , prefiro singular com base no que cada *linha" armazena: Pedido, Produto, Usuário, Item, etc.

    Isso corresponde à minha modelagem (via Modelagem de Função de Objeto) onde uso entidades/tipos singulares.

    Editar:

    Uma razão é que o plural falha quando você tem tabelas de links:
    Orders, Productsdaria OrderProductsou OrdersProducts. Nenhum soa correto

    Ou tabelas de histórico (é claro que você pode usar esquemas para isso):
    Orders-> OrdersHistoryou (não!) OrdersHistories? Não Order-> OrderHistoryseria melhor?

    • 66
  2. Bruce Patin
    2013-02-08T12:10:48+08:002013-02-08T12:10:48+08:00

    Com relação a nomes de tabelas no singular versus no plural, o assunto parece ser controverso, mas não deveria ser.

    Enquanto uma tabela é uma coleção de vários registros, uma tabela é nomeada de acordo com a definição de um tipo de registro que ela contém. Se uma tabela pudesse ter um nome diferente daquele do tipo de registro que ela contém, você poderia dar à tabela um nome plural, para que você pudesse, por exemplo, ter uma tabela Employees contendo vários registros Employee. Mas o designer do SQL não forneceu nomes separados para tabelas e tipos de registro.

    As coisas funcionam mais logicamente para programas orientados a objetos que usam os dados, se o nome de um tipo de registro (e, por extensão, o nome da tabela) for mantido no singular, pois corresponderá ao nome da classe que você usaria para descrever um registro .

    Se você deseja identificar uma coleção no programa, pode usar um plural, ou melhor, usar um modificador apropriado, como EmployeeList ou EmployeeArray.

    Há também um problema com plurais irregulares para geração automática de código e programadores que têm diferentes origens de linguagem ou ideias sobre a formação de plurais em um programa.

    O idioma inglês não é uma linguagem de programação boa e adequada, e tentar fazer com que as instruções do banco de dados e do programa estejam em conformidade com o inglês porque soa melhor ler uma dessas instruções é um erro.

    • 12
  3. Neil McGuigan
    2015-07-18T13:29:38+08:002015-07-18T13:29:38+08:00

    "ordem" é uma palavra reservada. "ordens" não é

    "usuário" é uma palavra reservada. "usuários" não é

    "sessão" é uma palavra reservada. "sessões" não é

    "resultado" é uma palavra reservada. "resultados" não é

    "relativo" é uma palavra reservada. "parentes" não é

    ...

    Essas parecem palavras comuns que podem entrar no banco de dados da linha de negócios. Palavras plurais parecem ser menos comuns como palavras-chave do que palavras singulares. Portanto, pode ser benéfico usar nomes de tabelas no plural para evitar conflitos com palavras-chave SQL.

    • 9
  4. Andrei Rînea
    2012-02-28T01:23:01+08:002012-02-28T01:23:01+08:00

    Assim como a resposta do @gbn, acho que isso é mais uma questão de preferências e, assim como ele, recomendo que qualquer escolha que você faça, aplique-a em todos os lugares (pelo menos nesse banco de dados). A consistência vale a pena.

    Minha preferência, no entanto, é que um plural soe melhor em SELECTdeclarações:

    SELECT Id, Name, Status 
    FROM   Persons
    WHERE  Status <> 5  --5 meaning deleted
    

    Quer dizer, neste caso, pelo menos, há várias pessoas na mesa e várias delas são devolvidas ao cliente.

    • 6
  5. ColacX
    2019-01-03T01:46:09+08:002019-01-03T01:46:09+08:00

    Depois de alguns anos trabalhando com programação, concluí que a pluralização é uma complicação desnecessária. Minha opinião é que de acordo com a filosofia KISS um programador deve se esforçar para a solução mais preguiçosa e fácil para todos os problemas por razões de tempo e eficiência. Assim, o singular oferece menos trabalho necessário em todos os cenários.

    • 4
  6. dlink
    2015-05-22T06:18:29+08:002015-05-22T06:18:29+08:00

    Acredito que a tabela SQL deve ter nomes no plural. Ele simplesmente lê muito melhor.

    Uma tabela de registros de livros deve ser chamada de livros. O ORM deve usar a mesma convenção. O objeto Livros é uma coleção e preside todos os registros na Tabela Livros. Um objeto Book preside um único registro.

    Isso torna a codificação mais natural.

    select name, publication_date from books where publication_date > '2000-01-01';
    
    books = Books()
    for book in books.get("publication_date >= '2000-01-01'"):
        print book.name
    
    • 1
  7. Ray
    2018-01-06T19:09:04+08:002018-01-06T19:09:04+08:00

    É uma coisa muito pessoal. Eu tenho usado a forma singular por 30 anos. Mas posso ver por que as pessoas gostam de plurais. Os livros - autores é interessante, pois acho que os autores de livros não estão errados. Um livro pode ter um ou mais autores. E os autores podem ter escrito um ou mais livros (por exemplo, co-escritos). Também depende de como você lida com livros escritos por mais de um autor. Concordo com outras respostas; escolha um e seja consistente. Em relação a questões de palavras reservadas. Acho que não é difícil encontrar nomes alternativos. user -> app_user , session -> app_session, pedido -> customer_order

    • 0
  8. James
    2018-01-17T18:22:30+08:002018-01-17T18:22:30+08:00

    Vemos as coisas de diferentes perspectivas, e acho que os dois campos são identificados por:

    Singular ("usuário")
    A pessoa que faz uma correlação entre o nome da tabela e o fato de ela representar um contêiner, que pode conter várias linhas.

    Portanto, o "contêiner do usuário" pode conter várias linhas.

    Plural ("usuários")
    A pessoa que não faz a correlação entre o nome da tabela e o fato dela representar um container. Claro que eles sabem que é um contêiner, mas não está lá no nome.

    Por exemplo
    , uma "caixa de ovos" pode conter vários ovos, mas isso é óbvio, pois a referência do recipiente está no nome, fornecendo potencial para vários ovos. No entanto, com o nome da tabela singular "usuário", a referência do contêiner não está no nome. por exemplo, "user_container" provavelmente seria aceitável para pessoas que preferem nomes no plural.

    Eu acho que isso também é por causa de anos de plural sendo prática comum e na maioria dos materiais didáticos online.


    Dito tudo isso, acho que, tecnicamente falando, o singular é mais preciso, pois estamos nomeando um único contêiner, e os contêineres podem conter várias (ou únicas) linhas.
    Parece errado para as pessoas, pois vinculam mentalmente o nome da tabela ao conteúdo (várias linhas precisam de um nome no plural) em vez de vincular mentalmente o contêiner nomeado ao conteúdo (um contêiner permite vários).

    Como sempre, muitas vezes não há certo e errado, e é mais sobre o que se adapta ao cenário e, o mais importante, ser consistente com o que você escolher.

    Se você está fazendo o projeto apenas e não há nenhuma razão real para ir de qualquer maneira, faça o que achar melhor, ou apenas preferência. Aplique o mesmo quando estiver em uma equipe de desenvolvimento e chegue a uma decisão unânime.

    • 0
  9. James
    2022-04-14T19:31:31+08:002022-04-14T19:31:31+08:00

    Os argumentos sobre "plural" parecem ser principalmente sobre ser gramaticalmente correto e, embora tenhamos gramática até certo ponto na programação, não é o mesmo que o próprio idioma inglês.

    Nomes "plurais" só soam corretos porque as tabelas são consideradas várias coisas, "usuários" etc. Se você estivesse em uma reunião de negócios com 40 dos usuários do seu site, você se referiria a eles como "há todos os nossos usuários ". Mas você não tem "usuários da web" fisicamente em sua tabela, são apenas dados, então pense nisso como "dados de usuário da web". Você não colocaria a palavra "dados" no nome da sua tabela, mas é isso que é, uma coleção de dados com uma ou várias linhas relacionadas a "webUser".


    Imagine uma empresa agrícola que precisa armazenar dados sobre seus animais. Eles têm uma mesa chamada "vacas" e devem começar a negociar com "ovelhas".

    • A tabela deve ser "ovelha" e quebrar a consistência com todos os outros nomes no plural, como "vacas"?
    • A mesa deve ser "ovelha", que é o inglês incorreto? Não é nem uma palavra

    O negócio avança ainda mais, e agora eles comercializam veados e bacalhau...

    Então, temos inconsistência, o que é irritante para trabalhar:

    • vacas
    • ovelha
    • porcos
    • cervo
    • bacalhau

    Ou consistência, mas com palavras inválidas que levariam a maioria das pessoas a lê-las:

    • vacas
    • ovelhas
    • porcos
    • veados
    • bacalhau

    "bacalhau"? Vamos lá.


    Ele também quebra quando você tem várias tabelas que se relacionam com várias palavras. Você continua o plural para consistência e tem nomes de tabelas com sons terríveis, ou quebra a consistência:

    • usuários
    • usersHolidays ou userHolidays
    • usersHolidaysRemainings or userHolidaysRemainings or...????

    vs

    • do utilizador
    • userHoliday
    • userHolidayRemaining
    • -1

relate perguntas

  • Os índices filtrados podem ajudar a melhorar as consultas baseadas em uma hora inserida ou isso deve ser evitado?

  • Qual é a diferença entre os tipos de dados MySQL VARCHAR e TEXT?

  • É melhor armazenar os valores calculados ou recalculá-los a pedido? [duplicado]

  • Armazenar vs calcular valores agregados

  • Quais são algumas maneiras de implementar um relacionamento muitos-para-muitos em um data warehouse?

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como ver a lista de bancos de dados no Oracle?

    • 8 respostas
  • Marko Smith

    Quão grande deve ser o mysql innodb_buffer_pool_size?

    • 4 respostas
  • Marko Smith

    Listar todas as colunas de uma tabela especificada

    • 5 respostas
  • Marko Smith

    restaurar a tabela do arquivo .frm e .ibd?

    • 10 respostas
  • Marko Smith

    Como usar o sqlplus para se conectar a um banco de dados Oracle localizado em outro host sem modificar meu próprio tnsnames.ora

    • 4 respostas
  • Marko Smith

    Como você mysqldump tabela (s) específica (s)?

    • 4 respostas
  • Marko Smith

    Como selecionar a primeira linha de cada grupo?

    • 6 respostas
  • Marko Smith

    Listar os privilégios do banco de dados usando o psql

    • 10 respostas
  • Marko Smith

    Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL?

    • 4 respostas
  • Marko Smith

    Como faço para listar todos os bancos de dados e tabelas usando o psql?

    • 7 respostas
  • Martin Hope
    Mike Walsh Por que o log de transações continua crescendo ou fica sem espaço? 2012-12-05 18:11:22 +0800 CST
  • Martin Hope
    Stephane Rolland Listar todas as colunas de uma tabela especificada 2012-08-14 04:44:44 +0800 CST
  • Martin Hope
    haxney O MySQL pode realizar consultas razoavelmente em bilhões de linhas? 2012-07-03 11:36:13 +0800 CST
  • Martin Hope
    qazwsx Como posso monitorar o andamento de uma importação de um arquivo .sql grande? 2012-05-03 08:54:41 +0800 CST
  • Martin Hope
    markdorison Como você mysqldump tabela (s) específica (s)? 2011-12-17 12:39:37 +0800 CST
  • Martin Hope
    pedrosanta Listar os privilégios do banco de dados usando o psql 2011-08-04 11:01:21 +0800 CST
  • Martin Hope
    Jonas Como posso cronometrar consultas SQL usando psql? 2011-06-04 02:22:54 +0800 CST
  • Martin Hope
    Jonas Como inserir valores em uma tabela de uma consulta de seleção no PostgreSQL? 2011-05-28 00:33:05 +0800 CST
  • Martin Hope
    Jonas Como faço para listar todos os bancos de dados e tabelas usando o psql? 2011-02-18 00:45:49 +0800 CST
  • Martin Hope
    bernd_k Quando devo usar uma restrição exclusiva em vez de um índice exclusivo? 2011-01-05 02:32:27 +0800 CST

Hot tag

sql-server mysql postgresql sql-server-2014 sql-server-2016 oracle sql-server-2008 database-design query-performance sql-server-2017

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve