Je suis sur un projet d'inventaire serveur et j'aurais besoin d'aide au niveau de l'organisation des tables.
J'ai besoin d'afficher la liste des serveurs par localisation à l'aide d'un formulaire de recherche.
Quand je ferais ma recherche sur la localisation, j'ai besoin qu'il m'affiche dans la page :
En haut de la page : Le site saisie, l'adresse du site, les contacts avec leur numéro de téléphone et éventuellement leur email.
En dessous le contenu sous forme d'un tableau qui liste les serveurs du site avec le nom des serveurs, l'adresse ip, l'idrac, les rôles, les logiciels métiers, un lien avec la fiche d'intégration du serveur...
J'ai pensé à créer les tables suivantes :
Table P_Servers
id_server (clé primaire)
name
model
os
type
ip
idrac
hyperv
dhcp
imp
...
App1
App2
App3
...
localisation_id (clé étrangère)
v_server_id (clé étrangère)
Table V_Servers
id_v_server (clé primaire)
v_name
v_model
v_os
v_type
v_ip
v_dhcp
v_imp
...
App1
App2
App3
Table Localisation
id_local (clé primaire)
contact_id (clé étrangère)
dir
ressort
local
Table Contact
id_contact
nom
prenom
fonction
telephone
mobile
email
Actuellement, j'ai créé ces deux tables.
-- phpMyAdmin SQL Dump
-- version 4.9.0.1
-- https://www.phpmyadmin.net/
--
-- Host: localhost:8889
-- Generation Time: Aug 30, 2019 at 07:43 PM
-- Server version: 5.7.26
-- PHP Version: 7.3.7
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
--
-- Database: `DB`
--
-- --------------------------------------------------------
--
-- Table structure for table `P_SERVERS`
--
CREATE TABLE `P_SERVERS` (
`id_server` int(11) NOT NULL,
`dir` varchar(45) NOT NULL,
`ressort` varchar(45) NOT NULL,
`site` varchar(45) NOT NULL,
`name` varchar(35) NOT NULL,
`model` varchar(35) NOT NULL,
`os` varchar(35) NOT NULL,
`type` varchar(35) NOT NULL,
`ip` varchar(35) NOT NULL,
`idrac` varchar(35) NOT NULL,
`hyperv` varchar(35) NOT NULL,
`dhcp` varchar(35) NOT NULL,
`imp` varchar(35) NOT NULL,
`sccm` varchar(35) NOT NULL,
`app1` varchar(35) NOT NULL,
`app2` varchar(35) NOT NULL,
`app3` varchar(35) NOT NULL,
`app4` varchar(35) NOT NULL,
`wsus` varchar(35) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
--
-- Dumping data for table `P_SERVERS`
--
--
-- Indexes for dumped tables
--
--
-- Indexes for table `P_SERVERS`
--
ALTER TABLE `P_SERVERS`
ADD PRIMARY KEY (`id_server`),
ADD UNIQUE KEY `id_server_2` (`id_server`) USING BTREE,
ADD KEY `id_server` (`id_server`) USING BTREE;
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `P_SERVERS`
--
ALTER TABLE `P_SERVERS`
MODIFY `id_server` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=12;
-- phpMyAdmin SQL Dump
-- version 4.9.0.1
-- https://www.phpmyadmin.net/
--
-- Host: localhost:8889
-- Generation Time: Aug 30, 2019 at 07:48 PM
-- Server version: 5.7.26
-- PHP Version: 7.3.7
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
SET time_zone = "+00:00";
--
-- Database: `DB`
--
-- --------------------------------------------------------
--
-- Table structure for table `V_SERVERS`
--
CREATE TABLE `V_SERVERS` (
`id_vserver` int(11) NOT NULL,
`v_name` varchar(35) NOT NULL,
`v_model` varchar(35) NOT NULL,
`v_os` varchar(35) NOT NULL,
`v_type` varchar(35) NOT NULL,
`v_ip` varchar(35) NOT NULL,
`v_dhcp` varchar(35) NOT NULL,
`v_imp` varchar(35) NOT NULL,
`v_sccm` varchar(35) NOT NULL,
`v_app1` varchar(35) NOT NULL,
`v_app2` varchar(35) NOT NULL,
`v_app3` varchar(35) NOT NULL,
`v_app4` varchar(35) NOT NULL,
`v_wsus` varchar(35) NOT NULL,
`id_server` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
-- Indexes for table `V_SERVERS`
--
ALTER TABLE `V_SERVERS`
ADD PRIMARY KEY (`id_vserver`),
ADD UNIQUE KEY `id_vserver_2` (`id_vserver`),
ADD KEY `id_vserver` (`id_vserver`);
--
-- AUTO_INCREMENT for dumped tables
--
--
-- AUTO_INCREMENT for table `V_SERVERS`
--
ALTER TABLE `V_SERVERS`
MODIFY `id_vserver` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
Comme philodick, je te conseille de faire un modèle conceptuel (MCD). Pour cela tu peux utiliser un logiciel de modélisation (genre jMerise). Tu pourras ainsi déblayer les choses et nous présenter un MCD avec lequel ce sera plus facile de discuter en cas de questions
Les apps, je vais les mettre dans la même table que rôle.
Je veux pas me lancer dans un projet à faire trop de tables. Je veux juster afficher un tableau avec la liste des serveurs et voir quels rôles et applications sont installés en fonction d'une recherche d'un site.
D'ailleurs la table location, je me demande si elle sert à quelque chose sachant que je peux mettre la localisation directement dans la table servers.
Ayant un mac, je n'ai pas trouvé de logiciel pour faire un MCD à part celui-ci : SQLEditor.
Les valeurs 1, n ... je les ai rajouté voir un autre logiciel car dans SQLEditor il me sort des symboles.
A : Autoincrement / P : Primary / F : je sais pas / U : Unique je pense
Les apps, je vais les mettre dans la même table que rôle.
Bah non ... cela n'a rien à voir ... il faudrait une entité application qui liste toutes les applications possibles, et une relation n,n entre serveur et application ...
Sym59 a écrit:
Je veux pas me lancer dans un projet à faire trop de tables
On ne parle pas de faire TROP de tables, mais juste de faire les tables dont tu as réellement besoin ...
Sym59 a écrit:
la table location, je me demande si elle sert à quelque chose sachant que je peux mettre la localisation directement dans la table servers
Bah non ... si plusieurs serveurs peuvent se trouver dans le même endroit, il faut bien passer par une entité ...
Si je reprends ton énoncé, en modélisant de façon normalisée, tu devrais avoir ceci :
Ce qui donne le modèle logique suivant en 8 tables (et oui ça fait plus que ce que tu souhaitais ...) :
Dans ce modèle, tu enregistres d'abord les rôles possibles (SHV, EXSI, DCRO, etc.) dans la table role, les applications possibles dans la table application, les lieux possibles dans la table lieu.
Ensuite une table mère serveur pour lister tous les serveurs (physiques et virtualisés), avec deux tables de relations serveur_role et serveur_app pour représenter les liens entre serveurs et apps et serveur et rôles ...
Enfin deux tables filles pour permettre de renseigner le lieu d'un serveur physique et le serveur physique d'un serveur virtualisé.
× Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
× Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
N'oubliez pas d'activer les erreurs PDO.