phpbar.de logo

Mailinglisten-Archive

Re: Normalisierung untertreiben
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Normalisierung untertreiben



Thomas Feyrer wrote:
> Wir haben eine allgemeine Tabelle.dbf, in der einfach nur mehrere
> Felder vorhanden sind, in die man mehr oder weniger belibige Daten
> einfügen kann.
> 
> Bsp:
> ID | KURZ | LANG                                          | ...
> ---+------+---------------------------------------+-----
> 1  | F    | Frau                                          |
> 1  | H    | Herr                                          |
> 1  | A    | Firma                                 |
> 2  | D    | Doktor                                        |
> 2  | DD   | Doktor-Doktor                                 |
> 2  | P    | Professor                                     |
> 3  | GMBH | Gesellschaft mit beschränkter Haftung |
> 3  | GBR  | Gesellschaft bürgerlichen Rechts      |
> 4  | P    | Post                                          |
> 4  | S     | Schule                                       |
> 4  | K    | Krankenhaus                           |
> 
> In der Tabelle stehen noch Tausende solcher Einträge....
> Es ist praktisch nur eine Hilfstabelle, damit man nicht 100 andere
> erstellen muss...
> Nun meine Frage:
> Ist es sinnvoll soetwas zu machen?
> Welche besseren Möglichkeiten gibt es?

Hi Thomas

Mir würde da zur Übersichtlichkeit eigentlich nur einfallen, dass du die
ID's noch in einer weiteren Tabelle benennst. Das heisst:

Entität:	Abkuerzungen
Attribute:	ID (int unsigned not null primary key)
		Kapitel_ID (smallint unsigned not null)
		Kurz (varchar(10) not null)
		Lang (varchar(255) not null)
		: [das ist mir noch ein Dorn im Auge...]

Entität:	Kapitel
Attribute:	ID (smallint unsigned  not null)
		Bezeichnung (varchar(255) not null)

Dann kannst du nämlich der ID 2 den Namen Personentitel oder so geben.
Über das Interface könntest du auch über diese Namen darauf zugreiffen,
da du ja sicher in der Maske die gleiche Bezeichnung verwendest
(Geschlecht, Titel, Gesellschaftsart, Gebäudeart, ...)

Unter Umständen wäre es dann sogar möglich, die Maske automatisch über
dieser zweite Entität erstellen zu lassen...?

In den anderen Tabellen kannst du dann direkt auf die Abkuerzungen.ID
verlinken, dann brauchst du nur nen int statt nem char. Bei enum
braucht's zwar weniger Speicher, dafür hast du im Code mehr Chaos...

Diese Lösung ist nur mal so kurz nen Ansatz. Vielleicht hat n'Profi was
besseres auf Lager?

Grüessli, Johannes

---
*** Weitere Infos zur Mailingliste und MySQL unter www.4t2.com/mysql 


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive