SQL View or Tables

Hallo Experten,

ich hab eine allgemeine User table und möchte diese in 2 untergruppen aufteilen beim login.
Deshalb überlege ich ob eine View oder Tabellen besser sind?

Diese Möglichkeiten gibt es:

Möglickeit a:
1 Table: generelle information + information zu den 2 untergruppen
Die unterinformation wird anschließend mit 2 Views ausgelesen.

Möglichkeit b: 
3 Tabellen werden erstellt: 1 Tabelle enthält die generelle information, 2 bzw. 3 Tabelle enthält gruppen spezifische Information. 
–> Der Nachteil, die Information muss teils doppelt eingetragen werden wie zum bsp Vorname und Nachname.

Welche Variante wäre hier besser bzw. wann würde die View Berechnungszeit benötigen,…?

Vielen Dank für alle hilfreichen Infos.

Lg,
Chris

Hallo Chris,

ich hab eine allgemeine User table und möchte diese in 2
untergruppen aufteilen beim login.
Deshalb überlege ich ob eine View oder Tabellen besser sind?

Eine Datenbank-View setzt immer eine/oder mehrere Datenbanktabellen voraus. Eine View ist dafür da komplexe Abfragen zu vereinfachen und einen einfacheren Zugriff zu erlauben + hat auch den Vorteil der besseren Perfomance, wenn man weiss was man tut, kann auch ins Gegenteil laufen.

Diese Möglichkeiten gibt es:

Möglickeit a:
1 Table: generelle information + information zu den 2
untergruppen
Die unterinformation wird anschließend mit 2 Views ausgelesen.

Du könntest (eine Möglichkeit) eine Oberklasse „Person“ erstellen und dann 2 Unterklassen „Usergruppe1“ „Usergruppe“ welche von Person erben. (3 Tabellen ohne Dopplung)

Möglichkeit b: 
3 Tabellen werden erstellt: 1 Tabelle enthält die generelle
information, 2 bzw. 3 Tabelle enthält gruppen spezifische
Information. 
–> Der Nachteil, die Information muss teils doppelt
eingetragen werden wie zum bsp Vorname und Nachname.

Dein 2. Vorschlag hast du dir schon selbst beantwortet, wenn etwas doppelt ist hat man das Schema nicht richtig aufgesetzt. Gehe so vor 1 Normalform -> 2. Normalform -> 3. Normalform und schau nach funktionalen Abhängigkeiten.

Gruß XXD

Danke für die AW.
Verstanden habe ich nur dass es viele Möglichkeiten gibt.

Die generelle Tabelle für die Registrierung enthält namen, pwd, email, etc. (ca 35 Reihen)
Für die erste Untergruppen Abfrage werden aber nur 8 Reihen von der Obergruppe mit einer einer komplexen % Berechnung von einer zweiten Tabelle benötigt.
Bei der zweiten Untergruppe handelt es sich um das selbe Schema (8Reihen + komplexe % Berechnung ).

Ist es daher Empfehlenswert Views für die Untergruppen zu verwenden?

Beste Grüße,
Chris

35 zeilen , oha

da kannst sogar excel nehmen , warscheinlich sogar schneller hihi

http://www.fractalcenter.de/2008/03/mysql-sichtenvie…

lesen gucken obs sinn macht

Hallo TechPech,

vielen Dank die schnelle AW und den Link.
Jz bin ich aber noch mehr verwirrt der Link beschreibt nicht nur Sichten sondern auch Procedures.

Procedures kann man auch verändern durch Insert, Delete oder Update Befehlet.
Was seine Vorteile hat. Allerdings würde ich die prozentuellen kalkulierten Wert in der Procedure
dann nicht verändern wollen.

Ist es jetzt sinnvoller eine Procedure zu machen oder eine View?
Normalerweise würde ich die Werte direkt in die große Tabelle eintragen (30 Zeilen).
–> In diesem Fall beeinfluss das die Sichten dann?

Lg,
Chris

Hi Chris,

Procedures kann man auch verändern durch Insert, Delete oder
Update Befehlet.
Was seine Vorteile hat. Allerdings würde ich die prozentuellen
kalkulierten Wert in der Procedure
dann nicht verändern wollen.

Was kein Argument sein sollte! Views vereinfachen nur komplexe Abfragen (sinnvoll z.B. bei Statistiken)…Proceduren lagern Berechnungen auf die DB aus und sind wie Views vorkompiliert -> bessere Performance + Vereinfachung der Programmierabfrageparameter.

Ist es jetzt sinnvoller eine Procedure zu machen oder eine
View?

Ohne definitiv zu wissen, was du, wie berechnen oder darstellen willst…schwer zu sagen!
Vermutlich wird die Kombination (Views und Proceduren) die „beste“ Wahl sein.

Normalerweise würde ich die Werte direkt in die große Tabelle
eintragen (30 Zeilen).

Warum?

–> In diesem Fall beeinfluss das die Sichten dann?

Die Sicht beeinflusst nichts, von dem was du in ihr nicht vorher definiert hast.

Gruß XXD