Cela peut être une bonne pratique car lorsque d'autres utilisateurs utilisent la base de données, vous souhaitez pouvoir limiter leur accès avec des schémas. Par exemple, dans une base de données, vous disposez des tableaux suivants.
HR.Payhist
HR.Payscale
HR.Jobdesc
IT.username
IT.useraccesslevel
ENG.jobsite
ENG.trainings
En tant que directeur des ressources humaines, je peux accéder à tout dans le HR
schéma, en tant que IT
directeur, je peux voir les noms d'utilisateur et les niveaux d'accès des employés. Le Engineering
département peut voir quels sites d'emploi sont actifs, etc. Si dbo était le schéma défini pour toutes les tables, j'aurais plus de mal à segmenter mes données et à fournir des rôles d'accès.
L'idée, je crois, dans SQL Server est d'offrir un produit accessible et interrogé par différents services. En réalité, seuls les DBA / DBDev accèdent réellement à la base de données et elle ne stocke généralement que les données d'application.
Il aide également à la lisibilité et à la gérabilité. À première vue, je peux facilement identifier quelle table contient quelles données et comment les données sont séparées.
Personnellement, je préfère définir les schémas comme une pratique générale. N'oubliez pas que le schéma est grec pour le plan, avoir une structure de schéma présentée vous aide à planifier et à identifier les données.