-
20.11.10 16:58 #1
Hallo an alle!
auf meiner Website soll man PHP-Codes hochladen können ungefähr wie bei Sourceforge.
Wobei es aber immer nur eine Datei ist mit max. 200 Zeilen Code.
So nun stellt sich die Frage: Soll ich diese in die Datenbank speichern oder als Datei?
Außerdem will ich jeden Code erst freigeben, bevor er veröffentlicht (zum Download) wird, sodass dann noch mehr Code zu speichern wäre.
Ich denke aber, dass dies die DB zu sehr auslasten würde (bei vielen Datensätzen).
Welche Möglichkeiten gäbe es denn noch sowas umzusetzen?
Vielen Dank im Voraus wie immer
mfg ComFreek
Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
[PHP] Überprüfen, ob Website erreichbar • Sicherheit in PHP-Codes schaffen • Google Chrome-Extension für tutorials.de • json_compress()
-
Hey,
das kommt wohl drauf an, inwieweit du mit den PHP-Dateien dann arbeiten möchtest.
Wenn Die nur da sind, um später runtergeladen zu werden, dann macht das in der Datenbank
wenig Sinn. Wenn Du die aber durchsuchbar machen willst, dann sieht das schon anders aus.
Ich würde in Deinem Fall wohl die Dateien auf dem Dateisystem so abspeichern, dass du eine
Referenz zu einem Datenbank-Eintrag hast, in dem dann Informationen, wie Ersteller, Veröffentlicht, Datum usw gespeichert werden.
Grüße,
MArcKryn.cms - einfach anders.
"When you're talking about webserver, as it is, with no rules, well then, baby you'd better block every tiny hole of your server!" - MArc (inspired by Bruce L.)
-
21.11.10 12:04 #3
Danke für deine Antwort, MArc.
Eigentlich sind sie zum Download dar.das kommt wohl drauf an, inwieweit du mit den PHP-Dateien dann arbeiten möchtest.
Wenn Die nur da sind, um später runtergeladen zu werden, dann macht das in der Datenbank
wenig Sinn. Wenn Du die aber durchsuchbar machen willst, dann sieht das schon anders aus.
Ich denke ich könnte auch entsprechende Keywords in der DB speichern, sodass sie immernoch teilweise durchsuchbar wären.
Ja, ich denke, ich werde es so machen.Ich würde in Deinem Fall wohl die Dateien auf dem Dateisystem so abspeichern, dass du eine
Referenz zu einem Datenbank-Eintrag hast, in dem dann Informationen, wie Ersteller, Veröffentlicht, Datum usw gespeichert werden.
Ich selber bin eigentlich nicht so gut im Tabellen planen
Soll ich lieber eine oder zwei Tabellen dazu nehmen? Denn ich müsste auch noch den PHP-Code freigeben.
Außerdem können auch mehrere Benutzer am PHP-Code arbeiten, wie soll ich dies speichern?
Allerdings möchte ich auch eine Versionsgeschichte (wie Wikipedia z.B.). Soll ich die dann auch auf das Dateisystem abspeichern?
Vielen Dank schonmal!Geändert von ComFreek (21.11.10 um 12:15 Uhr)
mfg ComFreek
Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
[PHP] Überprüfen, ob Website erreichbar • Sicherheit in PHP-Codes schaffen • Google Chrome-Extension für tutorials.de • json_compress()
-
Da könntest Du durchaus die Dateien auch einfach auf dem Dateisystem abspeichern, allerdings dann halt so, dass du später weißt, welche Datei welche Version ist. Es gibt ja diverse Wege, die Unterschiede zu ermitteln.
Alternativ kannst Du natürlich auch ein GIT/Subversion/CVS und wie sie nicht alle heißen benutzen. Dort checkst Du die Dateien dann einfach ein und kannst dann über die cli-tools die Diffs usw extrahieren. GIT dürfte wohl schon eine kleine Weboberfläche liefern - weiß da aber nicht mehr genau, was das alles kann und inwieweit man daraus Libs nutzen kann.Kryn.cms - einfach anders.
"When you're talking about webserver, as it is, with no rules, well then, baby you'd better block every tiny hole of your server!" - MArc (inspired by Bruce L.)
-
21.11.10 12:18 #5mfg ComFreek
Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
[PHP] Überprüfen, ob Website erreichbar • Sicherheit in PHP-Codes schaffen • Google Chrome-Extension für tutorials.de • json_compress()
-
Fies. Sehe nicht automatisch, wenn Du ältere Beiträge bearbeitest.

Wenn mehrere User an den selben Dateien arbeiten können, müsstest Du temporäre Versionen anlegen und die dann Mergen, sobald sie comitten/speichern. Wenn Konflikte entstehen, musste da eine kleines GUI bereitstellen, in dem man die Konflikte lösen kann.
Schau Dir das mal an: http://asvcs.com/
Ich denke dort kannst Du viel Informationen rausziehen. Eventuell sogar eine Extension schreiben, dass man das über Joomla ansteuern kann.Kryn.cms - einfach anders.
"When you're talking about webserver, as it is, with no rules, well then, baby you'd better block every tiny hole of your server!" - MArc (inspired by Bruce L.)
-
21.11.10 12:37 #7
Ich habe auch auf die Uhrzeit deines Beitrags geschaut

Ich dachte du hättest es noch gelesen, sonst hätte ich es nochmal geschrieben.
Es ist so:Wenn mehrere User an den selben Dateien arbeiten können, müsstest Du temporäre Versionen anlegen und die dann Mergen, sobald sie comitten/speichern. Wenn Konflikte entstehen, musste da eine kleines GUI bereitstellen, in dem man die Konflikte lösen kann.- Herr Schmidt erstellt/bearbeitet Code A
- Ich schalte Code A frei.
- Herr Müller bearbeitet wieder Code A
- Ich schalte überarbeiteten Code A frei
Bei z.B. Wikipedia kommt dann eine Meldung während des Bearbeitens, wenn der Artikel von jmd. anderen im Hintergrund bearbeitet wurde.mfg ComFreek
Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
[PHP] Überprüfen, ob Website erreichbar • Sicherheit in PHP-Codes schaffen • Google Chrome-Extension für tutorials.de • json_compress()
-
Kleiner Tipp am Rande: Ich würde das nicht nach Zeilen sondern Dateigröße beschränken. Sonst lädt dir einer ne 500MB Datei hoch weil er alles in eine Zeile quetscht
-
21.11.10 12:40 #9
@timestamp:
Danke
Ich habe wirklich (momentan...) nur 500MB Speicherplatz auf dem Server.
Aber mein eigentliches Problem/Schwierigkeit besteht darin, die Daten zu speichern.
Das Projekt soll etwas ähnliches wie Wikipedia werden, allerdings möchte ich den Code vorher noch freischalten (<=>meisten Artikeln bei Wikipedia).
mfg ComFreek
Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
[PHP] Überprüfen, ob Website erreichbar • Sicherheit in PHP-Codes schaffen • Google Chrome-Extension für tutorials.de • json_compress()
-
23.11.10 04:15 #10
- Registriert seit
- Nov 2010
- Beiträge
- 56
Bis Du eine MySQL-Datenbank "überlastest" kann viel Wasser die Spree runterlaufen. Also warum nicht den Code gleich drin speichern? Lieber verwalte ich 50.000 Datensätze als 50.000 Files auf dem Server

Den Code "mergen" stell ich mir erst mal chaotisch vor... Herr Schmidt ändert hier was, fügt neue Variablen ein, Herr Müller ändert da was, verwendet vielleicht sogar Variablen von Herrn Schmidt, ohne es zu wissen; da möchte ich nicht wissen, was am Ende bei rauskommt. Es sei denn, man macht das von Hand. Für mich wär das nichts.
Bei längerem nachdenken (was um die Uhrzeit allerdings nicht mehr wirklich richtig funktioniert), wird die Problematik komplizierter. Man kann einen Datensatz oder Version ja nicht sperren, sobald die einer bearbeitet. Wenn der dann zwischendrin Bier holen oder ins Kino geht... Wenn andererseits 50 Leute gleichzeitig eine Version bearbeiten, wird's am Ende vermutlich 50 Varianten geben.
Aber da denke ich mal besser morgen drüber nach.
Greetz
cw
-
23.11.10 08:17 #11
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Was das Sperren angeht, hierzu würde ich die Felder "lock", "zeit" und "lockid" in die Tabelle aufnehmen.
In dem Moment wo jemand auf ein bestimmtes Skript (ob nun als Datensatz oder als Datei) zugreift, wird in der Tabelle das Feld "lock" überprüft ob es den Wert 0 hat. In diesem Fall bekommt das Feld "lock" den Wert 1, "zeit" bekommt die aktuelle Uhrzeit und bei "lockid" wird der Benutzername oder ähnliches gespeichert. Ab jetzt ist der Datensatz für andere gesperrt.
Hat das Feld "lock" den Wert 1, dann wird zusätzlich noch die beim Datensatz gespeicherte Uhrzeit geprüft. Sind hier z.B. 5 Minuten Differenz zur aktuellen Zeit, dann wird der Datensatz dem neuen Benutzer übergeben ("lockid" wird entsprechend geändert) weil die Aktion des Benutzers der im Moment eingetragen ist wohl nicht beendet wurde.
Beim Speichern der Änderungen wird dann geprüft ob der Datensatz von dem Benutzer gesperrt wurde der ihn jetzt speichern will.
Hoffe mal es ist verständlich was ich da geschrieben habe!?Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
23.11.10 08:35 #12
Sehe ich genauso! Als kleine "Speicherplatz"-Optimierung könntest du alle Quelltexte komprimieren und dann in die DB legen. Texte lassen sich seeeeeehr gut komprimieren und somit hast du noch viel mehr Reserven.
Allerdings solltest du hier zwischen der Performance und dem Speicherplatz-Verbrauch abwägen, denn bei jedem Lesen und Schreiben muss der Quelltext vorher de- komprimieren und das wird ein wenig Zeit einnehmen, was du normalerweise nicht wirklich spüren solltest aber bei hochperformanten Anwendungen (oder schwachen Systemen) ggf. schon etwas mehr.
Das Problem ist nicht trivial, allerdings beweisen Subversion/Git etc. bereits das man damit sehr gut umgehen kann (und jedes System hat nun mal seine Vorteile aber auch Nachteile!) und wenn man in Teams arbeitet kommst um die Code-Verwaltung gar nicht rum. Klar wenn man gleich Stellen bearbeitet gibt es ein Konflikt und den muss man manuell lösen, allerdings wird dir jeder der mit solchen Systemen und im Team arbeitet sagen, dass diese Werkzeuge unverzichtbar und sehr gute Arbeit leisten (zu den Konflikten kommt es bei einer einigermaßen strukturierten Planung und Arbeitsteilung so gut wie gar nicht!).
Gruß
RudolfGTechnologien
(Gute) Grundkenntnisse: HTML, CSS
Fortgeschrittene-Kenntnisse: C++/Qt, C# (WinForms, Webservice), SQL
-
23.11.10 17:08 #13
@tombe: Ich verstehe nicht ganz folgenden Teil:
Ich bin bei United-Domains und habe deren Webspaceangebot, ob das hochperformant ist?
Ich habe jetzt mal folgende Tabelle:
Code sql:1 2 3 4 5 6 7 8 9 10
CREATE TABLE codes ( id INTEGER AUTO_INCREMENT PRIMARY KEY, name VARCHAR(30), code LONGTEXT, locked TINYINT, locktime INTEGER, lockauthor INTEGER --verweist auf die Tabelle users )
Allerdings könnte es sein, das irgendwann mal mehrere hunderte Benutzer diese Daten ändern wollen.
Wie macht denn z.B. Wikipedia das? Hier gibt es eine Tabellenstruktur, allerdings blicke ich nicht wirklich durch, denn in der Tabelle page wird kein Inhalt gespeichert...
Geändert von ComFreek (23.11.10 um 17:15 Uhr)
mfg ComFreek
Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
[PHP] Überprüfen, ob Website erreichbar • Sicherheit in PHP-Codes schaffen • Google Chrome-Extension für tutorials.de • json_compress()
-
23.11.10 17:31 #14
- Registriert seit
- Sep 2004
- Ort
- Möglingen (BaWü)
- Beiträge
- 3.109
Also jetzt gibt es uns beide als User und in der Tabelle stehen folgende Angaben:@tombe: Ich verstehe nicht ganz folgenden Teil:
Code :1 2
locked | locktime | lockauthor 1 | 23.11.10 - 17:15 | tombe
Wenn du jetzt den Datensatz zum Bearbeiten anklickst ist dieser zwar durch lock = 1 gesperrt, da aber die Uhrzeit (jetzt ist es bereits 17:24 Uhr) 9 Minuten zurückliegt, wir davon ausgegangen das ich den Vorgang nicht beendet habe.
Deshalb wird mein Eintrag entweder gelöscht oder aber wie folgt geändert:
Code :1 2
locked | locktime | lockauthor 1 | 23.11.10 - 17:24 | ComFreek
Somit bist du neuer "Besitzer" und darfst die Daten ändern.
Damit der Benutzer sieht wie viel Zeit im noch bleibt wäre vielleicht ein bisschen JavaScript nicht schlecht. Mit einer Uhr die die noch verbleibende Zeit bis zum Logout anzeigt.
Beim Speichern reicht es aus wenn nur der Name geprüft wird. Selbst wenn die Zeit abgelaufen sein sollte kommt dies nur zum Tragen wenn ein anderer auf die Daten zugreifen will.
Werden geänderte Daten gespeichert werden die 3 Felder so geändert:
Code :1 2
locked | locktime | lockauthor 0 | |
Somit darf der nächste ran.Geändert von tombe (23.11.10 um 17:37 Uhr)
Sollte ein Tipp von mir geholfen haben, habe ich nichts gegen eine entsprechende Bewertung oder ein Danke und wenn ein Problem gelöst ist, dann den Beitrag bitte auch als erledigt markieren.
Was ich gar nicht leiden kann sind User die es nicht für nötig halten auf Antworten zu reagieren, die Themen nicht als erledigt markieren und/oder die sich nicht für Hilfe bedanken.
-
23.11.10 17:37 #15
Zum Beispiel folgende Aktionen treten auf:
- 17:35 ComFreek bearbeitet Code A
- 17:40 Ich gehe kurz weg
- 17:44 tombe klickt auf "Bearbeiten" und erlangt die Rechte über Code A
Vielen Danke schonmal.mfg ComFreek
Falls ich dir geholfen habe, würde ich mich über ein DANKE freuen!
Kenn mich am besten aus in C++, WEB-Sprachen (PHP, HTML, JavaScript) und vllt. mehr
[PHP] Überprüfen, ob Website erreichbar • Sicherheit in PHP-Codes schaffen • Google Chrome-Extension für tutorials.de • json_compress()
Ähnliche Themen
-
EJB Speichern von Daten
Von macfreakz im Forum Enterprise Java (JEE, J2EE, Spring & Co.)Antworten: 3Letzter Beitrag: 28.04.05, 10:08 -
Wohin speichert die Session die Daten?
Von cmc-one im Forum PHPAntworten: 2Letzter Beitrag: 01.03.05, 15:35 -
********Daten speichern********
Von Teerow im Forum Visual Basic 6.0Antworten: 1Letzter Beitrag: 04.05.04, 23:35 -
daten speichern
Von BinaerPapst im Forum PHPAntworten: 3Letzter Beitrag: 16.06.03, 23:17 -
MX Daten Speichern
Von rayalety im Forum Flash PlattformAntworten: 4Letzter Beitrag: 02.05.03, 14:08



10Danke


Zitieren

Login





