Si vous construisiez une base de données avec des tables Documents, Clients, Utilisateurs et Entreprises, où dans Entreprises vous stockeriez les sociétés qui utilisent le logiciel, comment concevriez-vous les trois premières tables pour qu'elles prennent en charge plusieurs Entreprises à stocker ? Donc, dans Documents, nous voulons stocker les documents de toutes les entreprises, bien sûr, nous devons les distinguer d'une manière ou d'une autre, donc nous aurions besoin d'une colonne comme FirmID. Nous pouvons également placer cette colonne dans Clients et Utilisateurs.
L'exigence suivante est que chaque entreprise puisse avoir ses propres identifiants pour les documents, les clients, car évidemment, lorsque nous ajoutons une nouvelle entreprise, ses identifiants pour tout ce qu'elle crée doivent commencer à 1.
Je pensais à quelque chose comme ça, mais cela nécessite la construction manuelle de tous les champs sauf RowID.
CREATE TABLE [dbo].[ClientTest](
[RowID] [int] IDENTITY(1,1) NOT NULL,
[FirmID] [int] NOT NULL,
[ClientFirmID] [int] NOT NULL,
[ClientFirmPrettyID] [varchar](10) NOT NULL,
CONSTRAINT [PK_ClientTest] PRIMARY KEY CLUSTERED
(
[RowID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]
) ON [PRIMARY]
RowID s'exécutera automatiquement dans ce cas mais c'est inutile pour nous car pour tout ce que nous faisons nous devons utiliser ClientFirmID et ClientFirmPrettyID. Existe-t-il un moyen d'automatiser la création de ces deux éléments ?