Announcement

Collapse
No announcement yet.

Tabelle referenziert auf sich selbst

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Tabelle referenziert auf sich selbst

    Hallo zusammen,

    ich bin SQL-Anfänger und habe da ein kleines Verständnisproblem bei einer Tabelle.

    Ich möchte eine Tabelle artikel erstellen. Diese Artikel sind entweder normale Artikel oder Zubehörartikel. Ein Zubehörartikel kann also auch Zubehör von einem normalen Artikel sein.

    Kann ich das in einer Tabelle abbilden oder brauche ich dann doch eine Tabelle artikel und eine Tabelle zubehör? Da Zubehör aber auch Artikel sind, würde ich das lieber über eine Tabelle abwickeln. Aber wie??

    Ich hoffe ich habe mich halbwegs verständlich ausgedrückt!!

    Grüße
    funomat

  • #2
    Hallo,

    lass es in einer Tabelle und unterscheide ggfs. durch eine "Kategorie" (Artikel, Zubehör).

    Gruß Falk
    Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

    Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

    Comment


    • #3
      Hallo Falk,

      wie kann ich dann aber Abbilden, dass ein Artikel der Kategorie Zubehör auch Zubehör eines Artikels der Kategorie Artikel ist?

      Ich habe das bisher nur über diesen Weg hin bekommen:

      tab_artikel 1...n tab_artikel_has_zubehoer n...1 tab_zubehoer

      und

      tab_artikel 1...n tab_zubehoer

      Kann man das so machen?

      Gruß
      funomat

      Comment


      • #4
        Hallo,

        [highlight=sql]
        create table tab_artikel
        id => PK,
        kategorie ('Artikel', 'Zubehör'),
        ...

        create table tab_zubehoer
        id => PK,
        artikel_id => referenziert tab_artikel.id,
        zubehoer_id => referenziert tab_artikel.id,
        ...
        [/highlight]

        Damit kannst du jeden Artikel zum Zubehör eines anderen Artikels machen, indem du einen Eintrag in der Tabelle tab_zubehoer machst.
        Schlussendlich bräuchtest du dann nicht mal mehr die Kategorie, da jeder Artikel der in tab_zubehoer.zubehoer_id steht, automatisch ein Zubehör ist.

        Gruß Falk
        Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

        Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

        Comment


        • #5
          Das klingt fast logisch für mich

          Vielen Dank schon mal.

          Kannst Du mir auch sagen wie ich das in einem EER-Diagram in Workbench darstellen kann??

          Ziehe ich da einfach zwei mal eine 1:n nonidentifying Relationship von tab_zubehoer zu tab_artikel?

          Gruß
          funomat

          Comment


          • #6
            Wenn aber ein Zubehör nur zu einem Artikel gehören kann, dann kann man das auch in einer Tabelle machen. Falks Vorschlag wäre ein m:n Beziehung.

            1:n würde so gehen:

            Code:
            Tabelle Artikel
            ==============
            ArtikelId int //identifiziert Artikel
            ArtikelName string
            ZubehoerVon int //fremdschlüssel auf Artikel.ArtikelId

            Comment


            • #7
              Originally posted by fanderlf View Post
              ...Falks Vorschlag wäre ein m:n Beziehung.
              Ist richtig, ich bin davon ausgegangen, dass ein Artikel als Zubehör mehrerer anderer Artikel dienen kann.

              Gruß Falk
              Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

              Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

              Comment


              • #8
                Nein, nein, Falk lag schon richtig! Es ist eine n:m-Beziehung.

                Deshalb ja zwei mal die 1:n-Beziehung in Workbench. Nur so bekomme ich die Darstellung, so wie Falk sie beschrieben hat.

                Comment

                Working...
                X