Estou projetando um esquema de banco de dados para um aplicativo da web. É a primeira vez que estou projetando um banco de dados com um objetivo comercial. Comecei a desenhar diagramas ER depois de passar pela fase de requisitos.
Minha pergunta é sobre as condições no esquema.
Eu tenho uma categoria de tabela e subcategoria com um para muitos relacionamentos entre eles. Uma categoria tem muitas subcategorias.
Tabela de categorias
====================== | Nome da categoria | ====================== | categoria1 | | categoria2 | ======================
Tabela de subcategorias
=========================================== | Categoria do Proprietário | Nome da subcategoria | =========================================== | categoria1 | subc1 | | categoria1 | subc2 | | categoria2 | subc3 | | categoria2 | subc4 | ===========================================
Agora um usuário tem acesso a subc1
se ele tiver acesso a category1
.
Existe alguma maneira de representar esse cenário com o diagrama ER para que, ao consultar o diagrama, seja possível conhecer essa restrição?
Basicamente, quero saber como essa restrição de acesso é propagada para a próxima fase de projetos.
Os diagramas Entidade-Relacionamento mostram entidades e relacionamentos, incluindo a cardinalidade dos relacionamentos.
Algumas pessoas e ferramentas expandem isso para mostrar atributos, chaves primárias e chaves estrangeiras. Eu até vi algumas tentativas de representar visualmente algumas restrições, como nulidade de atributos e domínios de dados básicos. Algumas das convenções gráficas clássicas, como IDEF1X, também incluem informações sobre a natureza dos relacionamentos (se eles são determinantes dos filhos ou não).
Não conheço nenhuma convenção gráfica para mostrar regras de acesso em um diagrama ER.
Eu diria que tentar agrupar muita informação em uma representação visual do esquema tornará o diagrama tão difícil de entender que se tornará inútil. Eu diria que isso se aplica a algo como regras de acesso.
Para mostrar as regras de acesso, você realmente precisa mostrar os acessadores (ou seja, os usuários), pois diferentes acessadores geralmente terão regras de acesso diferentes. Não há nenhuma convenção estabelecida para incluir usuários em um diagrama ER, então eu não tentaria fazer dessa forma.
Como alternativa, sugiro usar tabelas ou gráficos para indicar quais usuários têm acesso a quais entidades. Você pode incluir uma coluna que mostre as regras de nível de dados que se expandem nas regras de nível de tabela. Uma regra de nível de dados pode ser algo como "os usuários só podem acessar as subcategorias que pertencem às categorias que possuem".
Não resultará em uma imagem bonita, mas acredito que uma documentação compreensível superará uma imagem bonita quando se trata de tentar explicar seu projeto a um desenvolvedor ou cliente.