Heim >Backend-Entwicklung >PHP-Problem >So entwerfen Sie eine Datenbank in PHP

So entwerfen Sie eine Datenbank in PHP

(*-*)浩
(*-*)浩Original
2019-09-07 09:13:032829Durchsuche

So entwerfen Sie eine Datenbank in PHP

Der erste Schritt besteht im Allgemeinen darin, eine Datenbank zu erstellen, es sei denn, Sie verwenden einen Datenbankdienst eines Drittanbieters.

Beim Erstellen einer Datenbank wird ein Eigentümer zugewiesen, der neue Anweisungen ausführt und erstellt.

Normalerweise hat nur der Besitzer (oder Superuser) die Berechtigung, beliebige Vorgänge an Objekten in der Datenbank durchzuführen.

Wenn Sie möchten, dass andere Benutzer es verwenden, müssen Sie ihnen die Erlaubnis erteilen. (Empfohlenes Lernen: PHP-Programmierung vom Anfänger bis zum Experten)

Anwendungen sollten niemals den Datenbankbesitzer oder das Superuser-Konto verwenden, um eine Verbindung zur Datenbank herzustellen , da diese Konten ausgeführt werden können Jeder Vorgang, z. B. das Ändern der Datenbankstruktur (z. B. das Löschen einer Tabelle) oder das Löschen der gesamten Datenbank.

Für jeden Aspekt des Programms sollten separate Datenbankkonten erstellt werden und nur sehr begrenzte Berechtigungen für Datenbankobjekte erteilt werden.

Geben Sie nur die Berechtigungen zu, die zum Ausführen der Funktion erforderlich sind, um zu verhindern, dass derselbe Benutzer die Aufgaben eines anderen Benutzers ausführen kann. Auf diese Weise kann ein Angreifer, selbst wenn er eine Programmschwachstelle ausnutzt, um Zugriff auf die Datenbank zu erhalten, nur den gleichen Einfluss haben wie das Programm.

Ermutigen Sie Benutzer, nicht die gesamte Transaktionslogik in Webanwendungen (d. h. Benutzerskripts) zu implementieren.

Am besten verwenden Sie Ansichten, Trigger oder Regeln, um es auf Datenbankebene abzuschließen. Wenn das System aktualisiert wird, müssen neue Schnittstellen für die Datenbank geöffnet und alle Datenbank-Clients neu erstellt werden.

Darüber hinaus verarbeiten Trigger Felder transparent und automatisch und liefern nützliche Informationen beim Debuggen von Programmen und beim Nachverfolgen von Fakten.

Zum Beispiel: Verwenden Sie den Singleton-Modus (Singleton), um eine Datenbankverbindungsklasse zu erstellen

Datenbankverbindungsobjekte werden normalerweise im gesamten Projekt gemeinsam genutzt, es besteht keine Notwendigkeit Das Instanziieren eines Objekts bei jeder Verwendung ist nicht nur ineffizient, sondern verschwendet auch Ressourcen. Daher wird eine Singleton-Klasse verwendet, um sicherzustellen, dass sie im gesamten Anwendungssystem eindeutig ist.

Klassen im Singleton-Modus werden normalerweise mit der statischen Klassenmethode getInstance() implementiert. Diese statische Methode gibt nur eine eindeutige Instanz der Klasse zurück. Beim ersten Aufruf dieser Methode erstellt die Methode eine Instanz, speichert sie in einer privaten statischen Variablen und gibt die Instanz zurück. Beim nächsten Aufruf wird keine neue Instanz erstellt, sondern die beim ersten Mal erstellte Instanz zurückgegeben.

Der Konstruktor einer Klasse, die das Singleton-Muster übernimmt, wird normalerweise privat gemacht, um eine direkte Instanziierung der Klasse und die Erstellung neuer Instanzen zu verhindern.

<?php
Class DBConnect 
{
    private static $Instance = null;

    public static function getInstance() {
        if( !isset(self::$Instance) ) {
            self::$Instance = new self();
        }
        return self::$Instance;        
    }

    private function __construct() { … }
    private function __clone() {}
}
?>

Das obige ist der detaillierte Inhalt vonSo entwerfen Sie eine Datenbank in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn