Wie erstelle ich erweiterbare Web-Applikationen auf Datenbank-Basis?

Wie erstelle ich erweiterbare Web-Applikationen auf Datenbank-Basis?

am 14.04.2006 19:02:02 von Colin Finck

Hallo,

Momentan habe ich eine Website mit PHP, wo man Benutzer-Accounts
anlegen kann. Jeder Benutzer-Account hat einen Ordner auf dem Server.
Die Benutzer haben verschiedene Rechte. In dem Benutzer-Ordner wird
dazu eine Datei für jedes Recht erstellt, in der steht, ob der
Benutzer das Recht besitzt oder nicht.

Da ich denke, dass ein Benutzer-System über eine Datenbank einfacher
zu handhaben ist, würde ich es gerne auf eine SQLite-Datenbank
umstellen (SQLite, da mein Server keine weiteren MySQL-Datenbanken
anbietet). SQLite soll ja auch schneller sein als MySQL, oder gibt es
hier irgendwelche Nachteile bei solchen Systemen mit SQLite als
Datenbank?

Ich weiß nun allerdings noch nicht genau, wie ich eine einfache
Erweiterbarkeit wie oben beschrieben auch bei Datenbanken hinkriege.
Ich stelle mir das jetzt so vor, dass ich eine Tabelle "Rechte" anlege
mit einer Spalte als Primärschlüssel zu jedem Benutzer und weiteren
Spalten für jedes einzelne Recht, in der dann eingetragen wird, ob der
Benutzer das Recht besitzt oder nicht. Was mache ich aber, wenn ich die
Tabelle um neue Rechte erweitern will? Soweit ich weiß kann man ja
einer bestehenden SQL-Tabelle keine weiteren Spalten hinzufügen, oder?

Vielen Dank im Voraus,

Colin Finck

Re: Wie erstelle ich erweiterbare Web-Applikationen auf Datenbank-Basis?

am 14.04.2006 21:39:19 von Wolfgang Kueter

Am Fri, 14 Apr 2006 10:02:02 -0700 schrieb Colin Finck:

> [...] Was mache ich aber, wenn ich die
> Tabelle um neue Rechte erweitern will?

Eine weitere Spalte anlegen!?

> Soweit ich weiß kann man ja
> einer bestehenden SQL-Tabelle keine weiteren Spalten hinzufügen,

Du irrst.

> oder?

ALTER ATBLE

oder Du machst das direkt ordentlich wie es sich gehört mit einer
Zwischentabelle, denn dasm was Du vorhast ist einer Klassiker in Sachen
n:m Beziehung:

CREATE TABLE benutzer (
login varchar(15) primary key,
vorname varchar(30),
nachname varchar (30),
....
);

create table rechte (
recht varchar (30) primary key,
....
);

create table benutzer_recht (
login varchar (15) references benutzer,
recht varchar (30) references rechte);

create unique index ben_recht_idx on benutzer_recht (login,recht);
CREATE INDEX

Wolfgang

Re: Wie erstelle ich erweiterbare Web-Applikationen auf Datenbank-Basis?

am 23.04.2006 13:22:19 von Colin Finck

Danke für die Antwort. Hat mir weitergeholfen.

Beste Grüße,

Colin Finck