2014-02-14 10 views
6

Ich entwerfe die Datenbank für ein Portal. Insbesondere habe ich eine Benutzer-Tabelle, die Spalten enthält: ID, Benutzername und Passwort.Wie gestaltet man das Datenbankschema?

Auch gibt es drei Arten von Benutzern: Käufer, Verkäufer und Broker und jeder Benutzer hat eine separate Tabelle mit Spalten: Name, Beschreibung, Handy, Einführer usw. Die Broker-Tabelle hat keine Einführer Spalte.

Basierend auf diesem Entwurf möchte ich ein zweistufiges Registrierungsformular mit Anmeldeinformationen für den ersten Schritt und Informationen zum Profil für den zweiten Schritt erstellen.

Jetzt diktieren die Geschäftsregeln, dass ein Benutzer ein Käufer, Verkäufer oder Makler sein kann. Ein Benutzer kann höchstens ein Profil (Käufer, Verkäufer oder Makler) haben. Ich möchte die Login-Daten und das Profil Info getrennt in der Datenbank halten

Was ich getan habe:

ich eine separate Tabelle für Benutzer erstellt haben, Makler, Käufer und Verkäufer mit Benutzer-ID als Fremdschlüssel in der Käufer, Makler und Verkäufer Tabelle.

Nun meine Frage ist

  • Wie die Tabellen für diesen Entwurf zu schaffen?
  • Wie die Fremdschlüsseleinschränkungen angeben?

Ich bin neu in Datenbank-Design und alle Hilfe wird geschätzt.Vielen Dank im Voraus.

+1

Was haben Sie versucht? Welche Datenbank-Engine verwendest du? Was meinst du mit "Wie erstelle ich die Tabellen/spezifiziere die Fremdschlüsseleinschränkungen"? Meinst du konzeptionelle oder syntaktische Probleme? –

+0

Neville K, Ich benutze Mysql engine.Ich habe konzeptionelle Fragen, welche Art von Beziehungen (zB: 1: 1 usw.) zwischen dem Benutzer und dem Käufer, Verkäufer und Broker Tabellen existieren.Ich kann die Syntax Probleme behandeln. – user3309732

Antwort

3

als „ein Benutzer höchstens ein Profil haben kann“ es klingt wie Sie durch das Hinzufügen einer user_profile Tabelle profitieren werden, die dann ‚subtyped‘ würde durch broker, seller und buyer, zusätzliche Felder als anwendbar.

würde A user haben eine 1: 1 mit user_profile und user_profile würde 1 haben: 0/1 mit broker, seller und buyer. Ich würde in Betracht ziehen, die user_id als Primärschlüssel für alle diese zu verwenden.

Ich denke, Sie finden auch this Antwort nützlich.

enter image description here

+0

Könnten Sie bitte Ihre Antwort – user3309732

+0

@TI Vielen Dank für Ihre Antwort.Ich denke, dass Ihre Antwort ist in der Nähe, was ich will, aber eine letzte Frage.Wie man die eins-zu-eins-Beziehung zwischen Profiltabelle und dem Makler, Verkäufer und Käufer implementieren Tabelle in mysql.Thanks wieder – user3309732

Verwandte Themen