Tu demandes un boulot énorme et en plus tu ne donnes pas des détails sur les types de données que tu veux stocker. Je veux dire que pour un membre du personnel ou un candidat pour un poste, la seul chose qui peut changer c'est le statuts de la personne et la date 'incorporation dans l'entreprise.
Tu parles de la gestion du personnel mais tu dois aussi avoir des historiques des salaires pour voir les avances sur salaire, tu dois aussi avoir une table pour stocker les présences d'un membre du personnel tel jour, de tel heure à tel heure afin de calculer les salaires. tu parles de facturation des clients, donc il faut aussi intégrer les projets/produits élaborés, qui a travaillé sur le produit, avoir une table pour les différentes grilles salariales pour 1H de boulot dans une tranche horaire. Par contre je vois pas ce que tu veux dire par consultation des archives, donc je peux pas trop aider.
En bref, tu ne donnes pas assez de détail et c'est un boulot monstre en soi qui devrait être confié à quelqu'un d'assez expérimenter dans la conception d'une base de donnée et des interfaces clients pour les différents services.
A première vue :
Personnel:
======
Nom_du_champ type valeur options
id int auto_increment, clé primaire
nom varchar(100)
prenom varchar(100)
status int
date_arrivee datetime
date_depart datetime
salaire:
=====
id_personnel int
date date
montant double
commentaire varchar(200)
tranche_horaire:
==========
id int auto_increment, clé primaire
montant double
tarification_produit:
============
id_personnel int
id_produit int
heure time
id_tranche_horaire int
produit:
=====
id int auto_increment, clé primaire
intitule varchar(100)
commentaire varchar(200)
et voila ce que cela donne en SQL :
CREATE DATABASE `gestion_personnel` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE TABLE `gestion_personnel`.`personnel` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`prenom` VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`nom` VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`status` INT NOT NULL ,
`date_arrivee` DATE NOT NULL ,
`date_depart` DATE NOT NULL
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci ;
CREATE TABLE `gestion_personnel`.`salaire` (
`id_personnel` INT NOT NULL ,
`date` DATE NOT NULL ,
`montant` DOUBLE NOT NULL ,
`commentaire` VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE TABLE `gestion_personnel`.`tranche_horaire` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`montant` DOUBLE NOT NULL
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci ;
CREATE TABLE `gestion_personnel`.`tarification_produit` (
`id_personnel` INT NOT NULL ,
`id_produit` INT NOT NULL ,
`heure` TIME NOT NULL ,
`id_tranche_horaire` INT NOT NULL
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE TABLE `gestion_personnel`.`produit` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY ,
`intitule` VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`commentaire` VARCHAR( 200 ) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL
) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_general_ci;
pour la suite, faut voir avec les données propres de ton entreprise, là à froid je vois que cela.