Konzeptfrage zur Datenbankanbindung

M

MrJack

Ambitioniertes Mitglied
10
Hallo Forum,

habe mehrere Fragen zur MySQL-Datenbankanbindung.
Ich habe schon des öfteren Tutorials gefunden, wo beschrieben wird wie man aus einer App mittels PHP (JSON) die Datenbankanfragen durchführt:

1) PHP Skript erstellen (connect, query, close)
2) In der Activity aufrufen und zurückgegebenenes JSON auswerten

Meine Fragen:
1) Wie performant ist diese Art der Datenbankanbindung, wenn - sagen wir - 1000 Benutzer gleichzeitig auf die Datenbank zugreifen
2) Wie sieht das Ganze aus, wenn ich zig verschiedene Queries auf die Datenbank absetzen will (SELECT, INSERT, DELETE, UPDATE). Soll ich dann wirklich für jeden Query ein eigenes php-File erstellen (selectXyz.php, insertToXyz.php, ...)? Ist es dann wirklich von Vorteil, dass ich in jeder Datei immer ein connect - query - close durchführe?
3) Muss ich diese php-Dateien am Server dann irgendwie sperren (.htaccess) und ist eine HTTPS-Verbindung ratsam?
4) Gibt es vielleicht eine bessere Art auf die Daten zuzugreifen (WebService)?
5) Jeder App-Benutzer sollte quasi ein eigenes Konto haben (ID), damit ich in der Datenbank eine Zugehörigkeit schaffen kann (user-Tabelle mit eindeutiger ID). Wie kann ich sowas umsetzen ohne dass man ein Benutzerkonto anlegen muss?

Kurzer Hintergrund zur gewünschten App: Es sollen bestimmte Inhalte aus der Datenbank ausgelesen werden, jeder Benutzer kann Einträge posten, bewerten, favorisieren, Kommentare zu Einträgen schreiben.
Deswegen brauch ich eine eindeutige Benutzerzugehörigkeit.

Wenn ein Benutzer z.B. einen Eintrag favorisiert, soll das in der Datenbank gespeichert werden:
Tabelle "favorites"
Eintrag: userId = 1, entryId = 3
Damit ist festgelegt, dass der User mit der ID 1 den Eintrag mit der ID 3 zu den Favoriten hinzugefügt hat.
Kann man das zumindest so lassen?

Danke
 
wenn du 1000 benutzer hast, die gleichzeitig mit der db arbeiten wollen, dann schau dir mal app engine an. php skripte werden da sicher überfordert sein.
 
  • Danke
Reaktionen: MrJack
swordi schrieb:
wenn du 1000 benutzer hast, die gleichzeitig mit der db arbeiten wollen, dann schau dir mal app engine an. php skripte werden da sicher überfordert sein.

Danke für die schnelle Antwort.
Was genau meinst du mit app engine? Und wie soll das dann funktionieren? Hast du gute Quellen oder Beispiele?
 
app engine bietet dir eine hohe skalierbarkeit. wenn du von 1000 benutzern gleichzeitig ausgehst, wirst du sowas mit sicherheit benötigen
 
  • Danke
Reaktionen: MrJack
Cool, danke, werd ich mir mal ansehen

Und wie siehts mit meiner Frage 5 aus? Kann mir da vielleicht auch wer weiterhelfen? (Benutzerverwaltung)
 
Ohne dein komplettes Modell zu kennen, ist das sehr schwer zu sagen. Die von dir vorgeschlagene Lösung ist typisch zur Darstellung von n:m Beziehungen: Ein Benutzer kann mehrere Favouriten haben und vice versa. Entspricht das dem, was du abzubilden versuchst?
 
nTraum schrieb:
Ohne dein komplettes Modell zu kennen, ist das sehr schwer zu sagen. Die von dir vorgeschlagene Lösung ist typisch zur Darstellung von n:m Beziehungen: Ein Benutzer kann mehrere Favouriten haben und vice versa. Entspricht das dem, was du abzubilden versuchst?

Ja, das stimmt.
Es geht mir aber eher um die Frage, wie ich es realisieren kann, dass jeder Benutzer, der die App verwendet, eine eindeutige ID bekommt, damit ich benutzerspezifische Informationen (wie eben z.B. Favoriten) speichern kann.
Das Ganze natürlich ohne dass der Benutzer beim Start explizit einen neuen Benutzer anlegen muss.
Oder soll ich beim 1. Start einfach nach einem Benutzernamen fragen?
Ich weiß leider nicht, wie man sowas am besten macht.
 
naja du könntest die UUID nehmen, oder einen Google Account.

hat alles vor- und nachteile
 
  • Danke
Reaktionen: MrJack
Eine letzte Frage noch: Gibt's irgendwo ein richtig gutes Tutorial zu diesem Thema, das ich abarbeiten kann und genau meinen Anforderungen entsprechen würde?
 
Vielleicht kannst du auch die ANDROID_ID verwenden:
Code:
System.out.println("ANDROID_ID: " + Secure.getString(this.getContentResolver(), Secure.ANDROID_ID));

Ich brauch auch eine eindeutige Identifizierung des Gerätes und bin darüber gestolpert. Da man die Handynummer wohl aus datenschutzrechtlichen Gründen nicht auslesen kann (hab ich mal irgendwo gelesen), ist mir bis jetzt nichts anderes bekannt, was ich sonst zur Identifikation verwenden könnte.
 
Ok, angenommen wir wüssten nichts von der Google App Engine.

Ab wie vielen Benutzern, würden sich die Anzahl der Benutzer merkbar auf die Performance auswirken?

Sagen wir bei ca. 1-10 DB Zugriffe pro Request. Größere Seiten die mit irgendeinem PHP CMS laufen sollten das auch hinbekommen oder?
Also ich glaube nicht das schon 1000 User einen Performance einbruch auslösen. Kennt da jemand genauere Zahlen?
 
Da fällt mir noch was auf: Wie mache ich dann am besten die Verbindung zwischen App Engine und Android? Webservice oder Restlet oder Hessian (kA was das ist)?
Oder bin ich am besten dran, wenn ich gleich ein "App Engine Connected Android Project" erstelle (wie hier: Create a New Project - Google Plugin for Eclipse - Google Code)
Dann bräuchte ich aber wieder einen Account für C2DM. Brauche ich das für meine Applikation?

Ich bin irgendwie verwirrt :confused2:
 
Ich empfehle einen Restservice in json.

C2DM brauchst du nur, wenn du einen pushdienst benötigst. Und dieser funktioniert meines wissens nur, wenn der Username einen Account bei google hat.

Gesendet von meinem HTC Desire HD mit Tapatalk
 
Ok, danke, hoffe ich bekomme es hin, ein paar Tutorials wären nicht schlecht gewesen. Ich finde zwar einige Beispiele, weiß aber nicht, inwiefern das jetzt mit Android und/oder App Engine zusammenspielt und ob das für meine Anforderungen das beste ist.
Habe nämlich weder mit App Engine noch mit Rest Services Erfahrungen
 
Ich hatte heute bei YouTube ein paar tutorials gefunden.

Gesendet von meinem HTC Desire HD mit Tapatalk
 
Und nach was hast du da gesucht? Hab als einzig brauchbares das von der Google I/O gefunden, die benutzen aber das C2DM, hilft mir also nur bedingt

Gesendet mit der Android-Hilfe.de-App
 
Kann ich dann Restlet verwenden? Ist ja ein Restservice mit JSON, oder?

Gesendet mit der Android-Hilfe.de-App
 
Unicate schrieb:
Ich empfehle einen Restservice in json.

C2DM brauchst du nur, wenn du einen pushdienst benötigst. Und dieser funktioniert meines wissens nur, wenn der Username einen Account bei google hat.

Gesendet von meinem HTC Desire HD mit Tapatalk

Wer hat denn android ohne einen Google Account..
 
auch solche leute mag es geben.
 

Ähnliche Themen

A
  • AnimaAngelo85
Antworten
1
Aufrufe
332
swa00
swa00
Tiefkuehlpizza
Antworten
9
Aufrufe
929
Tiefkuehlpizza
Tiefkuehlpizza
E
Antworten
2
Aufrufe
775
ekaya999
E
Zurück
Oben Unten