Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

Datenbank gut geplant?

Mitglied: tobmes

tobmes (Level 1) - Jetzt verbinden

25.08.2016, aktualisiert 20:40 Uhr, 1498 Aufrufe, 13 Kommentare

HI Experten,

zur Zeit befasse ich micht etwas mit der Entwicklung von Webanwendungen. Dazu habe ich eine kleine Anwendung gebastelt. Zum lernen und testen habe ich auf die ordentliche Planung der Datenbank verzichtet (Fragt nicht warum )

Am System können sich Benutzer registrieren und dann auch Anmelden. Nach efolgreicher Anmeldung können Benutzer neue "Kunden" anlegen und Ihnen dann Briefe schreiben, welche auch in der Datenbank gespeichert werden .

Dazu habe ich mir jetzt diese Datenbakstruktur überlegt.

Unterstrichen sind die Primärschlüssel und Fett sind die Fremdschlüssel

Tabelle User:
username,passwort,berechtigungslevel,fail_counter

Tabelle Kunden:
kundennummer,anrede

Tabelle adressen:
vorname,nachname,strasse,plz,ort,username,kundenname

Tabelle brief:
id,titel,text,zeitstempel,username,kundennummer

Was denkt Ihr? kann man das so lassen oder hat jemand verbesserungsvorschläger oder sogar eine komplett andere Lösung? Danke euch schon mal für die Hilfe

Gruß
tobmes
Mitglied: wiesi200
25.08.2016 um 20:51 Uhr
Hallo,

auf den ersten blick schon mal die Tabelle Adressen.
So Namenskombinationen könne durchaus öfter vorkommen.
Bitte warten ..
Mitglied: veniplex
25.08.2016 um 20:52 Uhr
Hallo tobmes,

also, ich gehe mal langsam durch:

Tabelle User:
Benutzername, Anrede, Vorname, Nachname, Strasse, PLZ, Ort, Passwort, Berechtigungslevel, Fail_Counter

Tabelle Kunde:
Kundennummer, Anrede, Vorname, Nachname, Strasse, PLZ, Ort

Tabelle Brief:
Sendungsnummer, Titel, Text, Zeitstempel, Benutzername, Kundennummer

Die Adressen solltest du mit in die jeweilige Tabelle nehmen, denn ein Feld von "Benutzername" und "Kundennummer" in der Tabelle "Adressen" würde immer leer bleiben, das ist nicht sehr praktisch, zumal die beiden auch noch Fremdschlüssel sind...

LG, Sascha
Bitte warten ..
Mitglied: tobmes
25.08.2016 um 21:45 Uhr
Vielen Dank für eure schnellen Antworten. Dann werde ich das etwas umbauen müssen. Dachte irgendwie das es geschickt wäre die Adressen auszulagen. Scheint ja nicht so zu sein
Bitte warten ..
Mitglied: veniplex
25.08.2016 um 22:08 Uhr
Tipp: Lies dir mal was zu Normalformen durch (http://www.oszhandel.de/gymnasium/faecher/informatik/datenbanken/normal ...).

Wenn du das verstanden hast sollte es dir klarer werden, warum man das so nicht macht.
Bitte warten ..
Mitglied: maretz
26.08.2016 um 07:12 Uhr
Was ich machen würde: Ich würde in JEDE Tabelle ein Feld "id" (int, auto-increment) einfügen, DAS ist der primärschlüssel. Denn dein Benutzername bräuchte dann nicht mal eindeutig sein, solange Benutzername und Passwort übereinstimmt hast du eine eindeutige ID. Spätestens wenn du mal einen Benutzer löscht und sich ein anderer Benutzer mit selben Usernamen anmeldet hast du sonst auch immer Spass.

Ganz davon abgesehen wäre bei großen Datenmengen ein Vergleich des INT-Wertes um ein vielfaches schneller als der eines String....
Bitte warten ..
Mitglied: 129813
26.08.2016 um 08:07 Uhr
Additionaly I would add the field "username" to the table "Kunden" so that these data sets can be assigned to the account. I wouldn't like to see addresses of other clients in my account

Regards
Bitte warten ..
Mitglied: veniplex
26.08.2016 um 08:18 Uhr
Naja, der Benutzername sollte optimaler Weise schon eindeutig sein, denn wie soll jemand sonst 2 Accounts auseinanderhalten?
Passwörter werden üblicherweise verschlüsselt abgespeichert, dementsprechend sollte das Passwort auch überhaupt gar nicht irgendwo genutzt werden, außer zur Authentifizierung...
Bitte warten ..
Mitglied: veniplex
26.08.2016 um 08:21 Uhr
Das würde aber voraussetzen, dass:
  • entweder jeder Kunde auch einen Account hat, oder
  • jeder Kunde genau einem Benutzer zugeordnet werden kann, was ein Problem wäre, da Kunden auch mehrere "Lieferanten/Hersteller" oder was auch immer haben können.
Bitte warten ..
Mitglied: 129813
26.08.2016, aktualisiert um 08:26 Uhr
Zitat von veniplex:
Das würde aber voraussetzen, dass:
  • entweder jeder Kunde auch einen Account hat, oder
No, I understand that the user creates these personal contacts (Kunden) so they belong to his account. Otherwise he needs an additional table which records the assignment, or do you want to see the contacts of other registered users in your account ??
Bitte warten ..
Mitglied: veniplex
26.08.2016 um 08:28 Uhr
Da müsste man natürlich klar definieren was man will. Wenn man das so sieht wie highload, hat er recht!
Ich dachte eher daran, dass es Kunden und User gibt, und Kunden in dem Fall auch zu mehreren Usern gehören können.

Man muss die Beziehung festlegen: 1:1 oder 1:n?
Bitte warten ..
Mitglied: tobmes
26.08.2016 um 10:24 Uhr
Hi,

also ich sehe schon das ist nicht so einfach, wie ich mir das vorgestellt habe. Stimmt aber, es wäre ja eigentlich nicht schlecht, wenn ein User einen "Kunden" anlegt, das nur er diesen Kunden auch sehen kann.
Bitte warten ..
Mitglied: Bl0ckS1z3
26.08.2016 um 12:28 Uhr
Man kann das Ganze auch noch auf die Spitze treiben.
Wenn man davon ausgeht, dass Vor-, Nach-, Orts- und Strassennamen in den Adressen sich ständig wiederholen und man die Daten redundant speichern will, kann man bei sehr großen Datenmengen damit Speicher sparen:

Tabelle Benutzer
BenutzerId,VNameId,NNameId,BenutzerName,KundenNummer,Berechtigung,FailCounter

Tabelle Vornamen
VNameId,VorName

Tabelle NachNamen
NNamenId, NachName

Tabelle Kunde
Kundennummer,AdressId,E-Mail

Tabelle Orte
OrtId OrtName

Tabelle Strassen
StrassenId StrassenName

Tabelle PLZ
PlzId PLZ

Tabelle Adresse
AdressId,PlzId,StrassenId,OrtId,HausNummer

Tabelle Sendung
SendungId,Titel,Text,Zeitstempel,Benutzername,EmpfängerId

Das macht dann aber u.U. die Applikation ganz schön aufwendig, denn man muss natürlich dann auch darauf achten, dass man keine Dupletten abspeichert. z.B.

OrtId Ort
1 Berlin
2 BERLIN

....
Bitte warten ..
Mitglied: Biber
26.08.2016, aktualisiert um 12:36 Uhr
Moin tobmes,


Zitat von tobmes:

...es wäre ja eigentlich nicht schlecht, wenn ein User einen "Kunden" anlegt, das nur er diesen Kunden auch sehen kann.
Ist auch zu kurz gegriffen.
Kann ja Kunden geben, die mit 5 Usern Geschäftsbeziehungen haben. Das würde bei dem Datenmodell dazu führen, dass der Kunde 5x angelegt wird mit Name, Anschrift, Telnr, ...

Wenn es also auch eine n:m-Beziehung sein kann, dann brauchst du eine weitere Tabelle mit Userid und Kundenid.

Grüße
Biber
Bitte warten ..
Ähnliche Inhalte
LAN, WAN, Wireless

Spezielle Routerkaskade geplant: Netzabtrennung, Portforwardings und WLAN-Funkstrecke

gelöst Frage von PluwimLAN, WAN, Wireless62 Kommentare

Hallo zusammen, bin schon einige Zeit am recherchieren, was für mein Szenario die beste und einfachste Lösung wäre, da ...

Router & Routing

4 Netzwerke geplant - und nur Probleme

gelöst Frage von Hexa09Router & Routing26 Kommentare

Hallo, ich habe eigentlich keine großen Probleme mit meinem Vorhaben erwartet, und nun steh ich vor einem Rätsel. Ich ...

Informationsdienste

Gut getarnter Trojaner unterwegs (Emotet)

Information von nepixlInformationsdienste4 Kommentare

Hallo, quick & dirty: ein neuer Cryptotrojaner sorgt wieder für Millionenschäden. BSI Artikel Heise Artikel Der Trojaner kommt in ...

E-Mail

Warum klicken gut geschulte Leute?

Frage von BassFishFoxE-Mail27 Kommentare

Hallo in die Runde und ja es ist morgen erst Freitag. Was meint ihr, wie viele Mitarbeiter einer eigentlich ...

Neue Wissensbeiträge
Drucker und Scanner

Kyocera PCL Barcode Flash SD v3.0 Firmware Update installieren

Tipp von Mana vor 1 StundeDrucker und Scanner

Ich hatte eine vorhandene "PCL Barcode Flash SD v3.0 Type D/E", die bisher in einem Kyocera FS-4200DN verbaut war. ...

Sicherheit
0-day Schwachstelle im Internet Explorer
Information von kgborn vor 4 TagenSicherheit1 Kommentar

In Microsofts Internet Explorer gibt es eine 0-day Schwachstelle in der Scripting Engine, die faktisch alle Browser- und Windows-Versionen ...

Internet

Internet-Speedtest Automatisieren via Befehlszeile, cmd, Bash (Windows, Linux, FreeBSD, Mac)

Tipp von anteNope vor 5 TagenInternet6 Kommentare

Also das hier ist irgendwie an mir vorbeigegangen. Einfacher geht es schlicht nicht mehr. Mit "-s 28624 wähle ich ...

Administrator.de Feedback

Entwicklertagebuch: Codeblöcke auf unseren Seiten

Information von admtech vor 5 TagenAdministrator.de Feedback12 Kommentare

Hallo Administrator User, Unsere Codeblöcke werden ab sofort anders dargestellt. In Zukunft kommen neue Typen dazu. Hier ein Beispiel ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
WLAN Abbrüche
Frage von jo23487LAN, WAN, Wireless37 Kommentare

Hallo zusammen, ich habe einen neuen Speedport installiert und seit dem Abbrüche des WLANS. Eigentlich kann das mit dem ...

Internet Domänen
Wie funktioniert Subdomains mit der Fritzbox
Frage von martin951Internet Domänen30 Kommentare

Also die oberflächliche Frage steht ja schon oben nun zu den Details Ich besitze eine Domain bei Strato nun ...

Backup
Schnelles Backup- oder Synchronisierungsprogramm gesucht
Frage von DanielG1974Backup19 Kommentare

Hallo Leute. Ich bin für unsere kleine Firma seit Wochen auf der Suche nach einem Backup- bzw. Synchronisierungsprogramm. Ein ...

Windows Userverwaltung
Abfrage lokaler Gruppenmitgliedschaften in Windows - Bug umschiffen
gelöst Frage von DerWoWussteWindows Userverwaltung17 Kommentare

Moin Kollegen. Wer schon auf Betriebstemperatur ist und ein forderndes Problem sucht ;-) Mit dem Powershell-Kommando bekommt man normalerweise ...