Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

bioshock

MySQL Sim/Não

Mensagens Recomendadas

bioshock

Boas pessoal!

Estou a criar uma tabela de login em PHPMyAdmin, em que tenho os seguintes campos: IDUser, User, Pass, Admin.

No Admin, eu gostaria que o tipo de dados fosse "Sim ou Não". Pois o Administrador tem um nivel de acesso diferente do utilizador comum.

Qual é o tipo de dados a implementar? Obrigado.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
mjamado
Estou a criar uma tabela de login em PHPMyAdmin, em que tenho os seguintes campos: IDUser, User, Pass, Admin.

No Admin, eu gostaria que o tipo de dados fosse "Sim ou Não". Pois o Administrador tem um nivel de acesso diferente do utilizador comum.

Normalmente, eu uso ENUM('s','n') ou ('y','n')... Há quem use TINYINT (sendo 0, não, e 1, sim), há quem use CHAR... É um bocado ao gosto do freguês, desde que uses um tipo de dados compacto, como estes.

O ENUM é preciso usar com muita parcimónia, porque não escala muito bem - é o que lá está e acabou. Os outros tipos que referi escalam bastante melhor. Imagina que um dia destes precisas de ter outro tipo de Admin; é Admin à mesma, mas sem acesso a uma operação em particular. Basta "inventar" outro número (TINYINT) ou outro caracter (CHAR) que o identifique, apenas no código, e toca a andar; com ENUM, além das alterações no código, tens que ir à BD alterar o ENUM. Pode parecer rápido e trivial, mas é daquelas coisas muito fáceis de esquecer, sobretudo se tiveres servidores distintos para desenvolvimento e produção.


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
mjamado

Os datatypes BOOL e BOOLEAN não existem, são, na realidade, TINYINT(1). Cuidado com datatypes que ainda não são suportados nativamente pelo MySQL.


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jpaulino

Os datatypes BOOL e BOOLEAN não existem, são, na realidade, TINYINT(1). Cuidado com datatypes que ainda não são suportados nativamente pelo MySQL.

É o que diz no link :)

"These types are synonyms for TINYINT(1). A value of zero is considered false. Nonzero values are considered true: "

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
mjamado

É o que diz no link :)

"These types are synonyms for TINYINT(1). A value of zero is considered false. Nonzero values are considered true: "

Entre meteres o link e as pessoas clicarem vai uma grande distância.  :)

Só estou a chamar a atenção para o facto desses datatypes não serem ainda suportados nativamente, e o MySQL tem o mau hábito de introduzir alterações destrutivas em coisas deste estilo...


"Para desenhar um website, não tenho que saber distinguir server-side de client-side" - um membro do fórum que se auto-intitula webdesigner. Temo pelo futuro da web.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.