Frage : Sql-Bediener 2008: Benutzer-Schema gegen Spalte bei der Tabellenaufteilung.

Ich eine Arbeit zugewiesen mit Gebäude und dem Entwerfen einer Web-Anwendung.  
This Web-Anwendung hat die mehreren Klienten (bezogen wie „stationiert“ vorwärts bewegen).  
Each Aufstellungsort hat ihren eigenen spezifischen data.
Each Aufstellungsort kann mehrfachen users.
A Benutzer haben kann Zugang zu den mehrfachen Aufstellungsortdaten haben.  
Each Aufstellungsort hat das gleiche Schema des Datenbankplans/schema.
The hat überall von 30-100 Tabellen.
The Tabellen von 60 Aufzeichnungen bis zu 500.000+ records.
Certain Benutzern reichen gewährt, bestimmte Informationen von einem Aufstellungsort zu another.
There zu kopieren könnte sein könnte eine Notwendigkeit am Bericht, dass Gesamtdaten von der mehrfachen sites.

The Frage sind, es sein besser, ein Benutzerschema für jeden Aufstellungsort zu bilden?  Oder eine „Aufstellungsortidentifikation-“ Spalte zu jedem Tabelle hinzufügen und die Daten im Wesentlichen wiederholen verwendet durch jeden Aufstellungsort in der Tabelle?  Einen zusammengesetzten Schlüssel (Wesen Identifikation + Aufstellungsortidentifikation) über 30-100 Tabellen beizubehalten könnte ein Albtraum sein, aber also könnte, 10-20 Benutzerschemata beibehalten und ein neues Benutzerschema für jedes client.

Do herstellend ich, alle anderen entwicklungsfähigen Wahlen zu haben?  Ist eine der vorher erwähnten Wahlen besser als die andere?

Thanks im Voraus.

Antwort : Sql-Bediener 2008: Benutzer-Schema gegen Spalte bei der Tabellenaufteilung.

Ich getan eine Spitze des Grabens und ich angebracht ein Fragment von einer Kategorie t, die einen Einkaufskorb im Lernabschnitt speichert. Seit schiebend, können Reihen im Lernabschnitt unordentlich sein es umwandelt die Korbdaten (zwei Reihen) in zwei Schnüre und spart sie in zwei Lernabschnittvariablen.

Auf der Last der folgenden Seite, überprüft die Initialisierung der Kategorie, um zu sehen, wenn der Lernabschnitt die Variablen enthält, die anzeigen, dass ein Korb gebräuchlich ist. Wenn sie sie findet, verwendet sie UNSERIALIZE, um die Schnüre zurück in Reihen auszupacken und zuweist sie dann Kategorieneigenschaften e.
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:
//-Speicher die gegenwärtige Reihe in einer Lernabschnittvariable
	//
	privates Funktion updateBasket () {
		$_SESSION [$this->sessName] = serialize ($this->basket);
		$_SESSION [$this->sessQty]  = serialize ($this->qty);
	}



	// initialisieren den Korb
	//
	private Funktion initialisieren () {

		//-Überprüfung, wenn Lernabschnitt im Gang ist und wenn den vorhandenen Korb so zurückholen
		//
		wenn (isset ($_SESSION [$this->sessName]) && isset ($_SESSION [$this->sessQty])) {
			$this->basket = unserialize ($_SESSION [$this->sessName]);
			$this->qty    = unserialize ($_SESSION [$this->sessQty]);
		}
		sonst {
			$this->basket = Reihe ();
			$this->qty    = Reihe ();
			$this->updateBasket ();
		}

	}
Weitere Lösungen  
 
programming4us programming4us