Einzelnen Beitrag anzeigen
  #1  
Alt 24.08.2006, 08:49:49
Saipan Saipan ist offline
Anfänger
 
Registriert seit: Jan 2006
Alter: 55
Beiträge: 16
CSV-Datei als Datenbank benutzen - Bitte um Meinungen

Hallo,

wir betreiben einen Shop für unseren festen Kundenstamm (Großhandel), indem es Brutto- und kundenspezifische Nettopreise gibt. Die Bruttopreise sind in der Artikeldatenbank eingepflegt. Dieses auch für die Nettopreise zu tun, erscheint mir zunächst nicht praktikabel (alleine schon die Aktualisierung der Preise), da wirklich jeder Kunde bei jeder Artikelgruppe einen anderen Rabatt erhält und bei einzelnen Artikeln, die er besonders oft abnimmt, wiederum einen vom Rabatt unabhängigen Preis hat.
Um die Dimension etwas vorstellbar zu machen, es sind zur Zeit über 22000 Artikel und etwa 1000 Kunden, die den Shop wirklich nutzen.

Momentan habe ich eine Lösung gefunden, ich glaube sogar hier im Forum, bei der der Preis aus einer CSV-Datei ausgelesen wird. Die CSV-Datei hat eine Größe von unter 380 KB. Das entsprechende Script sieht wie folgt aus:

if(!empty($this->preisliste)){
//Abgefragt wird, ob für den User eine Preisdatei aufgespielt ist
require_once('common.php');
$preisliste = trim($this->preisliste);
//Der Name der Preisliste (User-Datenbank) ist gleich der Dateiname
$artnr = $productTpl->article;
$datei = "preise/".$preisliste.".csv";
//hier kommt der name der .csv-Datei rein
if(file_exists($datei)){
if($artnr > 0){
$inhalt = file($datei);
//hier wird die .csv-Datei ausgelesen
for($i=0;!empty($inhalt[$i]);$i++){
$t = explode(";",$inhalt[$i]);
if($t[0]==$artnr){
//hier wird verglichen ob die übergebene Artikelnummer mit der in der aktuellen Zeile übereinstimmt
$preis = $t[1];
//hier wird dann der preis der variablen $preis zugewiesen
break;
//beendet die for()-Schleife
}
}
}
$inzahl = strtr($preis, array(',' => '.'));
$productTpl->nettopreis = number_format($inzahl, 2, ',', '.');
$productTpl->rabatt = round(100*(1-($inzahl/$product->price)));
//Formatierung der Preisangabe und berechnen des Rabattes
}
}

Auf diese Weise brauchen wir den Kunden in der Kunden-Datenbank für die Nettopreise freigeben und die entsprechende CSV-Datei auf den Server aufspielen.

Ich hätte gerne eure Meinung darüber, ob ich den Server bei, sagen wir mal 100 gleichzeitigen Anfragen verschiedener Kunden auf verschiedene CSV-Dateien, in die Knie zwinge bzw. ob es eine elegantere Lösung für mich gibt.
__________________
Viele Grüße
Bernd
Mit Zitat antworten