Hotline-Ticketsystem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Hotline-Ticketsystem

    Hallo,

    über die Feiertage habe ich mich etwas in php+mysql eingearbeitet.

    Nun würde ich gern ein Freeware Hotline-Ticketsystem erstellen um meine Kenntnisse zu verbessern.

    Meine Gedankenansätze laufen in 2 Richtungen:
    Richtung1: Jede neue Ticket bekommt eine eigene Tabelle.
    Richtung2: alle schreiben in eine Tabelle

    Ich gehe davon aus, dass nicht mehr als 1000 Ticket pro Jahr eintreffen.

    Die Frage lautet:
    Was ist sicherer? Jedes Ticket eine eigene Tabelle, oder nicht?
    Was ist im Fehlerfall besser zu händeln? (Recovery)
    Woran sollte ich noch denken? (von PHP/SQL-Injection habe ich schon gelesen)

    Ich bedanke mich schon mal jetzt für eure Mühe und wünsche euch ein erfolgreiches 2011.

    Linuxfred
    Vielen Dank schon mal; der
    Linuxfred

  • #2
    Hallo,

    für jedes Ticket eine Tabelle wäre schlichtweg Wahnsinn! Faustregel: gleiche Daten in dieselbe Tabelle. Idealerweise bschäftigst du dich vorher mit dem relationalen Modell (ERM) und mit Normalisierung (die 5 Normalformen, BCNF).

    Gruß,

    Amica
    [COLOR="DarkSlateGray"]Hast du die [COLOR="DarkSlateGray"]Grundlagen zur Fehlersuche[/color] gelesen? Hast du Code-Tags benutzt?
    Hast du als URL oder Domain-Beispiele example.com, example.net oder example.org benutzt?
    Super, danke!
    [/COLOR]

    Kommentar


    • #3
      Habe etwas zu ERM gelesen und im folgenden siehst Du, ob ich den Ansatz richtig verstanden habe.
      Könnten diese Tabellen Dein Anspruch gerecht werden?
      Für jede produktive Kritik bin ich dankbar.

      Code:
      drop tables IF exists passwort0;
      CREATE TABLE passwort0
      (
          ID int NOT NULL auto_increment,
          Loginname VARCHAR(60) NOT NULL,
          Passwort VARCHAR(60) NOT NULL,
          FOREIGN KEY (ID) REFERENCES Benutzer(ID),
          PRIMARY KEY ( ID )
      )AUTO_INCREMENT=1;
      
      drop tables IF exists Benutzer;
      CREATE TABLE Benutzer
      (
          ID int NOT NULL auto_increment,
        Name VARCHAR(30) NOT NULL,
        Vorname VARCHAR(20) NOT NULL,
          Email VARCHAR(60) NOT NULL,
          FOREIGN KEY (ID) REFERENCES passwort0(ID),
          PRIMARY KEY ( ID )
      )AUTO_INCREMENT=1;
      
      drop tables IF exists Lastlogin;
      CREATE TABLE Lastlogin
      (
          ID int NOT NULL auto_increment,
        Lastlogin TIMESTAMP,
          FOREIGN KEY (ID) REFERENCES passwort0(ID),
          PRIMARY KEY ( ID )
      )AUTO_INCREMENT=1;
      
      
      drop tables IF exists Ticket;
      CREATE TABLE Ticket
      (
          Ticketnummer INT AUTO_INCREMENT,
        Erstellt DATE,
          Tickettext TEXT,
          Status CHAR(1),
          Technikername VARCHAR(30),
          Bearbeitungszeit TIMESTAMP,
          FOREIGN KEY (Ticketnummer) REFERENCES Benutzer(ID),
          PRIMARY KEY ( Ticketnummer )
      )AUTO_INCREMENT=1 COMMENT='Freeware Ticketsystem';
      Wie immer Danke ich schon mal jetzt für eure Hilfe
      Linuxfred
      Zuletzt geändert von linuxfred; 10.01.2011, 06:25. Grund: etwas vergessen
      Vielen Dank schon mal; der
      Linuxfred

      Kommentar


      • #4
        Hallo Fred,

        LastLogin und Password gehören zum Benutzer. Das sind immer jeweils 1:1-Beziehungen. So etwas macht keinen Sinn in verschiedene Tabellen aufzuteilen. Damit reduziert sich das ganze also auf zwei Tabellen: Benutzer und Ticket, wobei die Attribute aus LastLogin und Password in der Tabelle Benutzer stehen.

        Viele Grüße

        Wörni

        Kommentar

        Lädt...
        X