PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr (https://www.php-resource.de/forum/)
-   PHP Developer Forum (https://www.php-resource.de/forum/php-developer-forum/)
-   -   Unterschiedliche Profile in Datenbank speichern (https://www.php-resource.de/forum/php-developer-forum/106184-unterschiedliche-profile-in-datenbank-speichern.html)

CreativDesigner 12-03-2018 12:18

Unterschiedliche Profile in Datenbank speichern
 
Hallo zusammen,

ich stehe aktuell vor einem nun "Problem". Ich schreibe gerade eine kleine Seite auf der sich Firmen, Dienstleister und Kunden registrieren können.

Jetzt habe ich eine Tabelle "users" erstellt in dem die gesamten Mitglieder erfasst werden sollen. Jetzt kommt es jedoch zu dem Problem, das Kunden einige Angaben über sich machen können, Dienstleister noch ein paar weitere Felder und Firmen haben hier wieder ganz andere Formularfelder.

Jetzt war ich bereits am überlegen diese als Spalten in der Datenbank anzulegen, jedoch würde die Tabelle dann weit mehr als 50 Spalten breit werden. Mein 2. Gedanke war nun diese Felder als JSON zu verpacken und in eine Spalte `profile` zu stellen.

Das Problem ist das in der Detailsuche später genau danach gesucht werden soll. Zum Beispiel soll der Kunde suchen können ob, ein Dienstleister 'Malertätigkeiten' anbietet oder aber 'Handwerkertätigkeiten'.

In erster Linie geht es mir eben darum das es einige Felder sind wo jeweils nur ein Feld (SELECT FORM) auswählbar ist, jedoch dann auch Checkboxen zu den Tätigkeiten möglich sind.

Ich frage daher einfach mal Vorsichtig nach wie Ihr sowas lösen würdet :dontknow: da ich nachher ungern feststellen würde das die Idee die ich hatte viel zu langsam wäre.

Viele Grüße
Danny

bandit600 13-03-2018 07:17

Zitat:

Zitat von CreativDesigner (Beitrag 674492)
Jetzt war ich bereits am überlegen diese als Spalten in der Datenbank anzulegen, jedoch würde die Tabelle dann weit mehr als 50 Spalten breit werden.

Das wäre komplett falsch, Beschäftige dich mit Normalisierung, siehe https://de.wikipedia.org/wiki/Normalisierung_(Datenbank)

SysOp 14-03-2018 08:53

Zitat:

Zitat von CreativDesigner (Beitrag 674492)
....jedoch würde die Tabelle dann weit mehr als 50 Spalten breit werden. ...

Nicht Spalten, unterschiedliche Tabellen!

chorn 14-03-2018 11:35

Du brauchst eine Tabelle, in der alle Felder stehen.
Du brauchst eine Tabelle, in der alle Profiltypen stehen.
Du brauchst eine Tabelle, in der die Felder den Profiltypen zugeordnet werden (N-zu-M)
Du brauchst eine Tabelle, in der dem Benutzer pro Feld ein Wert zugeordnet ist (N-zu-M)

SysOp 14-03-2018 12:43

oder etwas simpler, eine Tabelle je Firma, Dienstleister und Kunden.

Irgend wie muss du ja schon am Anfang identifizieren, ob jemand Kunde oder Firma oder etwas anderes ist.
Mir fielen da noch andere Varianten ein, alles läuft aber auf Normalisierung und ein anderes Datenbankdesign hinaus.


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:32 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.
Search Engine Friendly URLs by vBSEO 3.3.0
[c] ebiz-consult GmbH & Co. KG