Digamos que eu tenha uma tabela Conta que contém nome de usuário e senha de usuários para fazer login: -
account (
account_id BIGINT PRIMARY KEY,
username VARCHAR(30),
password VARCHAR(30)
)
-- I have two more tables that stores their credentials in the above table:-
customer (
delivery_address VARCHAR(100),
account_id FOREIGN KEY,
..30 more customer columns
)
admin (
sp_admin_code INT,
account_id FOREIGN KEY,
..30 more admin columns
)
Um administrador não pode ser cliente e usar o mesmo nome de usuário e senha para fazer login como cliente.
Minhas perguntas:-
Esta é a maneira correta de implementar esse tipo de relacionamento? Se não, o que é?
Preciso adicionar alguma restrição na chave primária da tabela de contas para indicar que sua entrada única pode ser referenciada pela tabela de clientes ou pela tabela de administração de uma só vez?
Agora também sabemos que uma entrada na conta só pode existir se houver uma entrada para ela na tabela do cliente ou na tabela do administrador e vice-versa. Então, precisamos ou se quisermos adicionar alguma cascata/restrição, como fazemos ou como devemos fazer ou se devemos fazer? desculpe, estou confuso..
obrigado!