Olá pessoal!
estou começando estudar banco de dados, e estou criando algumas aplicações básicas para testar as funcionalidades do SGDB PostgreSQL. Estou com uma dúvida básica sobre relacionamento PK e FK. Tendo duas tabelas:
CREATE TABLE “tbUsers”
(
“UserID” serial NOT NULL,
“UserName” character varying(100) NOT NULL,
“UserLogin” character varying(20) NOT NULL,
“UserPassword” character varying(10) NOT NULL,
“UserStatus” integer NOT NULL,
CONSTRAINT “tbUsers_pkey” PRIMARY KEY (“UserID”)
);
CREATE TABLE “tbPermissions”
(
“PermissionID” serial NOT NULL,
“PermissionUSERmodule” integer NOT NULL,
“PermissionADMmodule” integer NOT NULL,
CONSTRAINT “tbPermissions_pkey” PRIMARY KEY (“PermissionID”)
);
Tenho idéia que a coluna “UserID” da tabela tbUsers seria minha PKey e gera valores sequênciais atribuídos por “sequences” no postgresql.
Agora eu preciso que essa informação seja replicada automaticamente para a coluna “PermissionID” da tabela tbPermissions nesse caso ela seria uma FKey.
O que tenho a dúvida se é uma boa prática eu atribuir o valor de uma chave estrangeira a uma chave primaria neste caso “PermissionID” e se neste caso o valor do campo “IDPermission” tem que ser serial, pois não geraria valor algum somente herdaria da Pkey “UserID”.
E isso ai galera, espero que tenha explicado minha dúvida com clareza.
grato.