[MySQL] Formular mit Pflichtfeldern aus Datenbank

kuhlmaehn

Erfahrenes Mitglied
Hallo,
ich würde gerne ein Formular erstellen, mit dem die Felder in einer Tabelle gefüllt werden sollen. Hierbei gibt es Pflichtfelder und optionale Felder. Da sich das Formular automatisch der Datenbank anpassen soll hatte ich mir nun zunächst überlegt in einer extra Tabelle die Namen der Felder zu speichern und welches davon ein Pflichtfeld ist. Nach dieser Tabelle könnte ich dann das Formular erstellen.
Da mir das aber eigentlich zu umständlich ist habe ich mir nun überlegt, dass ich die Namen der Felder ja auch direkt per query auslesen könnte (ich denke mit SHOW COLUMNS FROM?). Hier habe ich nun aber das Problem, dass ich dann keine Möglichkeit habe Pflichtfelder zu definieren.
Meine erste Idee war die Namen der Felder groß zu schreiben, wenn es ein Pflichtfeld ist und das dann später zu überprüfen. Das finde ich aber sehr unsauber.
Gibt es hierfür vielleicht einen sauberen Ansatz?
 
Das mit Gross und Kleinschreibung kannst du vergessen.

Entweder
a) Eine weitere Taeblle wo die die Namen der Fixfelder einträgst

oder
b) Mache bei den Spalten einen Suffix (oder Prefix)
VORNAME_PFLICHT, NACHNAME_PFLICHT, TEL_NR

oder am Besten
c) Du setzt in der DB bei der Tabellendefinition das Flag 'NOT NULL' auf true wenn es sich um ein Pflichtfeld handelt
Das kannst du nachher gleich so auswerten
SQL:
SELECT 
	column_name,
	(is_nullable = 'NO') AS is_mandatory
FROM 
	information_schema.columns
WHERE 
	table_name = 'myTable';

Ergibt dann so etwas
Code:
|| *column_name* || *is_mandatory* ||
=====================================
|| item_id       || 1              ||
|| name          || 1              ||
|| data          || 0              ||
|| expire        || 1              ||
|| created       || 1              ||

SQL:
ALTER TABLE myTable
	-- Ein Pflichtfeld
	`name` VARCHAR(255) NOT NULL,
	-- Ein Optionales Feld
	`data` LONGBLOB NULL;
 
Zuletzt bearbeitet von einem Moderator:

Neue Beiträge

Zurück