IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Décisions SGBD Discussion :

Quelle base de données pour un emploi du temps


Sujet :

Décisions SGBD

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 14
    Points : 10
    Points
    10
    Par défaut Quelle base de données pour un emploi du temps
    Voila, je voudrais créer une application en C# pour gérer des emplois du temps de plusieurs classes et j'ai pensé stocké dans une base de données. Mais la question est (assez courante mais un peu compliqué pour l'utilisation que je vais faire) :
    Quelle base de données je peux utiliser ?
    SQL Server (license OK)
    Mysql
    PostGreSQL
    SQLite

    Merci de vos conseils

  2. #2
    Rédacteur en Chef
    Avatar de Marc Lussac
    Homme Profil pro
    Responsable marketing opérationnel
    Inscrit en
    Mars 2002
    Messages
    28 664
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable marketing opérationnel
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Mars 2002
    Messages : 28 664
    Points : 61 535
    Points
    61 535
    Par défaut
    N'importe laquelle.

    Le comparatif est ici : http://fadace.developpez.com/sgbdcmp/

    Pourquoi par exemple ne pas t'investir sur SQL-Server, puisque tu as la licence, et que c'est un SGBD très courant en utilisation avec C# ?

    Mais n'importe quel autre SGBD peux faire l'affaire dans ce cas.
    Ne pas me contacter pour le forum et je ne répondrai à aucune question technique. Pour contacter les différents services du club (publications, partenariats, publicité, ...) : Contacts

    15 000 offres d'emploi développeurs et informatique
    Cours et tutoriels développeurs et informatique
    Les FAQ's & Les Livres
    Codes sources
    Téléchargements

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    14
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 14
    Points : 10
    Points
    10
    Par défaut
    merci bien des réponses, je vais surement prendre un mysql vu la simplicité de cette derniere
    Merci

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 739
    Points : 52 451
    Points
    52 451
    Billets dans le blog
    5
    Par défaut
    ATTENTION : la gestion des données temporelles constituent les traitement les plus complexes qui soient.
    Penser à prendre dans ce cas une base de données permettant fonctionnellement le plus de chose. Donc Exit MySQL et entre Firebird et SQL Server je n'hésiterait pas.

    Pour l'anecdote je travaille depuis plus d'un mois à la mise au point d'une requêtes de calcule d'enchaînement de tâches dans un planning. voici les principales parties de cette requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
     
     
    -- les journées type "ordinaires" sur la période considérée
    SELECT DISTINCT 0 AS JRN_TYPE,
           ATR_NOM, ATR.ATR_ID, 
           PJR.PJR_DATE,
           JRT_LIBELLE, JRT_DEBUTE, JRT_TERMINE,
           CASE 
              WHEN JTS_UTILISE = 0 THEN 0.0
              ELSE ITJ_DEBUT
           END AS ITJ_DEBUT,
           CASE 
              WHEN JTS_UTILISE = 0 THEN 24.0
              ELSE ITJ_FIN
           END AS ITJ_FIN,
           CASE 
              WHEN JTS_UTILISE = 0 THEN 0
              ELSE ITJ_CALC_SERVICE
           END AS ITJ_CALC_SERVICE
     
    FROM   T_ACTEUR_ATR ATR
           INNER JOIN TJ_CALENDRIER_PERSONNEL_CAP CAP 
                 ON ATR.ATR_ID = CAP.ATR_ID
           INNER JOIN T_JOURNEE_TYPE_JRT JRT
                 ON CAP.JRT_ID = JRT.JRT_ID
           INNER JOIN TJ_PROJECTION_JTS JTS
                 ON JRT.JRT_ID = JTS.JRT_ID
           INNER JOIN T_INTERVALLE_JOURNEE_ITJ ITJ
                 ON JRT.JRT_ID = ITJ.JRT_ID
    -- projection sur l'ensemble du calendrier
           INNER JOIN T_PLN_JOUR_PJR PJR 
    -- limite à la fenêtre de visualisation pour la projection
                 ON PJR_DATE BETWEEN COALESCE(JRT_DEBUTE,  @DATE_DEBUT) 
                                 AND COALESCE(JRT_TERMINE, @DATE_FIN  )
    -- ne pas prendre en compte les journées anormales
    WHERE  JRT.JRT_ID NOT IN (SELECT JRT_ID 
                              FROM   TJ_VALIDE_JTJ)
    -- élimination des dates des journées anormales pour les acteurs
      AND NOT EXISTS (SELECT *
                      FROM   TJ_CALENDRIER_PERSONNEL_CAP CAP1
                             INNER JOIN T_JOURNEE_TYPE_JRT JRT1
                                   ON CAP1.JRT_ID = JRT1.JRT_ID
                             INNER JOIN TJ_VALIDE_JTJ JTJ1
                                   ON JRT1.JRT_ID = JTJ1.JRT_ID
                      WHERE  CAP1.ATR_ID = CAP.ATR_ID
                        AND  JTJ1.PJR_DATE = PJR.PJR_DATE)
    -- refiltrage sur la fenêtre de temps
      AND PJR_DATE BETWEEN @DATE_DEBUT
                       AND @DATE_FIN 
    -- correspondance avec jour de semaine sur projection date
      AND JTS.PJS_ID = PJR.PJS_ID
     
    UNION
     
    -- les journées "particulières" sur la période considérée
    SELECT DISTINCT 1 AS JRN_TYPE,
           ATR_NOM, ATR.ATR_ID, 
           PJR.PJR_DATE, JRT_LIBELLE, 
           JRT_DEBUTE, JRT_TERMINE,
           ITJ_DEBUT, ITJ_FIN, 
           ITJ_CALC_SERVICE
     
    FROM   T_ACTEUR_ATR ATR
           INNER JOIN TJ_CALENDRIER_PERSONNEL_CAP CAP 
                 ON ATR.ATR_ID = CAP.ATR_ID
           INNER JOIN T_JOURNEE_TYPE_JRT JRT
                 ON CAP.JRT_ID = JRT.JRT_ID
           INNER JOIN TJ_VALIDE_JTJ JTJ
                 ON JRT.JRT_ID = JTJ.JRT_ID
           INNER JOIN T_INTERVALLE_JOURNEE_ITJ ITJ
                 ON JRT.JRT_ID = ITJ.JRT_ID
    -- projection sur les dates spécifiques du calendrier
           INNER JOIN T_PLN_JOUR_PJR PJR 
    -- limite à la fenêtre de visualisation pour la projection
                 ON JTJ.PJR_DATE = PJR.PJR_DATE 
                    AND PJR.PJR_DATE BETWEEN COALESCE(JRT_DEBUTE,  @DATE_DEBUT ) 
                                         AND COALESCE(JRT_TERMINE, @DATE_FIN   )
     
    UNION
     
     
    -- le jour du début
    SELECT -1 AS JRN_TYPE, ATR_NOM, ATR_PRENOM, ATR.ATR_ID, 
           PJR_DATE, SOO_LIBELLE, NULL AS JRT_DEBUTE, NULL AS JRT_TERMINE,
           dbo.FN_DATETIME_AS_HD2(SOO_DH_DEBUT) AS ITJ_DEBUT, 
           CASE
              WHEN dbo.FN_DATETIME_AS_DATE(SOO_DH_DEBUT) = dbo.FN_DATETIME_AS_DATE(SOO_DH_FIN)            
                 THEN dbo.FN_DATETIME_AS_HD2(SOO_DH_FIN) 
              ELSE 24.0
           END  AS ITJ_FIN,
           2 AS ITJ_CALC_SERVICE
    FROM   T_SEQUENCE_OT_OEM_SOO SOO
           INNER JOIN T_PLN_JOUR_PJR PJRD
                 ON dbo.FN_DATETIME_AS_DATE(SOO_DH_DEBUT) = PJRD.PJR_DATE
           INNER JOIN T_ACTEUR_ATR ATR 
                 ON SOO.ATR_ID = ATR.ATR_ID
    WHERE  PJR_DATE = dbo.FN_DATETIME_AS_DATE(SOO_DH_DEBUT)
    UNION ALL
    -- toutes les dates intermédiaires
    SELECT  -1 AS JRN_TYPE, ATR_NOM, ATR_PRENOM, ATR.ATR_ID, 
           PJR_DATE, SOO_LIBELLE, NULL AS JRT_DEBUTE, NULL AS JRT_TERMINE,
           0 AS ITJ_DEBUT, 24 AS ITJ_FIN,
           2 AS ITJ_CALC_SERVICE
    FROM   T_SEQUENCE_OT_OEM_SOO SOO
           INNER JOIN T_PLN_JOUR_PJR PJRD
                 ON     dbo.FN_DATETIME_AS_DATE&#40;SOO_DH_DEBUT&#41; < PJRD.PJR_DATE
                   AND  dbo.FN_DATETIME_AS_DATE&#40;SOO_DH_FIN&#41; > PJRD.PJR_DATE
           INNER JOIN T_ACTEUR_ATR ATR 
                 ON SOO.ATR_ID = ATR.ATR_ID
    UNION ALL
    -- le jour de fin s'il y en a un
    SELECT -1 AS JRN_TYPE, ATR_NOM, ATR_PRENOM, ATR.ATR_ID, 
           PJR_DATE, SOO_LIBELLE, NULL AS JRT_DEBUTE, NULL AS JRT_TERMINE,
           0 AS ITJ_DEBUT, 
           dbo.FN_DATETIME_AS_HD2&#40;SOO_DH_FIN&#41; AS ITJ_FIN, 
           2 AS ITJ_CALC_SERVICE
    FROM   T_SEQUENCE_OT_OEM_SOO SOO
           INNER JOIN T_PLN_JOUR_PJR PJRF
                 ON dbo.FN_DATETIME_AS_DATE&#40;SOO_DH_FIN&#41; = PJRF.PJR_DATE
           INNER JOIN T_ACTEUR_ATR ATR 
                 ON SOO.ATR_ID = ATR.ATR_ID
    WHERE  dbo.FN_DATETIME_AS_DATE&#40;SOO_DH_DEBUT&#41; <> dbo.FN_DATETIME_AS_DATE&#40;SOO_DH_FIN&#41;
      AND  PJR_DATE = dbo.FN_DATETIME_AS_DATE&#40;SOO_DH_FIN&#41;
     
    ORDER BY  ATR.ATR_ID, PJR_DATE,   ITJ_DEBUT, ITJ_FIN
    A lire sur le sujet :
    http://sqlpro.developpez.com/cours/gestiontemps/

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Quelle base de données pour une table très volumineuse ?
    Par bailamos dans le forum Décisions SGBD
    Réponses: 15
    Dernier message: 17/08/2012, 16h23
  2. Quelle base de données pour mon application ?
    Par dim07 dans le forum Bases de données
    Réponses: 16
    Dernier message: 14/10/2009, 14h38
  3. Quelle base de données pour un chat de 5000 personnes ?
    Par muad'dib dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 20/08/2008, 01h40
  4. Quelle Base de données pour une application en Java
    Par Feysal dans le forum Décisions SGBD
    Réponses: 4
    Dernier message: 01/06/2007, 22h05
  5. Quelle Base de Données pour gérer des documents multimédia ?
    Par Doudy dans le forum Décisions SGBD
    Réponses: 1
    Dernier message: 21/01/2007, 21h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo