Será uma tabela para para usuario e outra para agenda.
Cada usuario com uma tabela diferente, pra mim isso soa bastante estranho, eu faria com que as duas tabelas que mencionou se comunicassem.
Uma dúvida, o usuário irá cadastrar na agenda dele apenas pessoas que também tem agenda ou qualquer pessoa? Se for qualquer pessoa cria-se uma tabela contatos com nome, endereço, id_user(chave estrangeira), e etc. Esta tabela é dependente da tabela usuário. A tabela contatos não possui chave primaria. E caso a tabela usuario seja destruida a tabela contato tambem será destruida(resumindo falei dependencia 2 vezes kk).
Somente os 100 usuarios, que ele pretende criar, mas com a restrição de que o usuario A não terá acesso a tabela do usuario B, eu entendi dessa forma.
Exemplo Usuaria A:
ID, ID_USER, NOME, TELEFONE,....
1, A, Joao, 3243846893
2, A, Maria, 4893568946
Exemplo Usuaria B:
ID, ID_USER, NOME, TELEFONE,....
1, B, Lucas, 4756743
2, B, Pedro, 39265892
Seria uma tabela só! diferencio os usuarios apenas pelo ID_USER, mas se forem muitos dados isso pesa o banco? ou criar assim:
Exemplo Usuaria A tabela A:
ID, NOME, TELEFONE,....
1, Joao, 3243846893
2, Maria, 4893568946
Exemplo Usuaria B tabela B:
ID, NOME, TELEFONE,....
1, Lucas, 4756743
2, Pedro, 39265892
Qual seria melhor e ficaria melhor?
Caro eu acho que vc não deveria criar id para as pessoas da agenda. Pensa comigo suponhemos que eu(Pedro) tenha o joão na minha agenda. Este joão na minha agenda tem o id 1. Agora vc (thiago) tem o mesmo joão, mas com Id 2, percebeu o problema ? A mesma pessoa com id duplicados. Acho melhor vc criar duas tabelas uma com o usuario e outra com os contatos dele, sem chave primaria na tabela contatos.
Pedro, como irá ocorrer a comunicação entre as tabelas?
Enfim as pessoas cadastradas nuncam será iguais!! e caso ocorra a duplicação isso pouco importa porque pode haver comentários diferente! Eu apenas quero saber se pesa o sistema ter uma tabela só o outer varias tabelas, entenderam?