Announcement

Collapse
No announcement yet.

Constraint ohne Unique Key

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

  • Constraint ohne Unique Key

    Hallo Forum,

    durch ein bißchen stöbern im Netz bin ich auf Euch gestoßen und hoffe hier eine Lösung für mein Problem zu finden.

    Dieses macht sich wie folgt bemerkbar:

    Ich habe zwei Tabellen Member & MemberPay. Bei beiden ist ist Membernumber der PrimaryKey. Über ein Constraint habe ich es hinbekommen das die Tabelle MemberPay von Member abhängig ist. Wenn ich also ein Nutzer in Member habe und diesen mit seiner Membernumber auch in MemberPay eingetragen ist, wird dieser wenn ich Ihn wieder aus der Tabelle Member lösche auch aus der Tabelle MemberPay gelöscht (on delete cascade).
    Soweit so gut!

    Jetzt ist mir aber aufgefallen das ich in der Tabelle MemberPay einen Nutzer mit seiner Membernumber nur 1 mal eintragen kann. ("Dublicate Entry")

    Sinn ist es aber einen Nutzer in die MemberPay mehrfach einzutragen. Und zwar für unterschiedliche Jahre.
    Quasi:
    Name |Membernumber|year
    Nutzer1|1234567890|2006
    Nutzer1|1234567890|2007
    Nutzer1|1234567890|2008
    Meine Tabellen habe ich wie folgt erstellt:

    Code:
    CREATE TABLE  `Member` (
      `clubnumber` varchar(40) NOT NULL,
      `membernumber` varchar(20) NOT NULL,
      `firstname` varchar(30) NOT NULL,
      `surname` varchar(30) NOT NULL,
      `birthday` date NOT NULL,
      PRIMARY KEY  (`membernumber`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    Code:
    CREATE TABLE  `MemberPay` (
      `clubnumber` varchar(40) NOT NULL,
      `membernumber` varchar(20) NOT NULL,
      `year` varchar(4) NOT NULL,
      PRIMARY KEY  (`membernumber`),
      CONSTRAINT `constraint` FOREIGN KEY (`membernumber`) REFERENCES `Member` (`membernumber`) ON DELETE CASCADE
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
    Hat jemand eine Idee wie dies vielleicht geschickter machen könnte?

    Vielen Dank vorab für Eure Hilfe!

    Gruß,
    mobas

  • #2
    Du darfst in Memberpay die membernummer nicht als PRIMARY KEY definieren.

    Gruß frauwue
    docendo discimus

    Comment


    • #3
      Originally posted by frauwue View Post
      Du darfst in Memberpay die membernummer nicht als PRIMARY KEY definieren.

      Gruß frauwue

      Hallo,

      vielen Dank für die Antwort!

      hmmm... funktioniert denn dann der Constraint? Werd es heute Abend mal ausprobieren. Bin grad auf Arbeit.

      Melde mich dann noch mal.

      Gruß,
      mobas

      Comment


      • #4
        Originally posted by mobas View Post
        ... funktioniert denn dann der Constraint? ...
        Hallo,

        ja der Constraint wird weiterhin funktionieren, sonst wären keine 1:n Beziehungen möglich. Für die Definition einer Fremdschlüsselbeziehung muß lediglich für den Master-Key - das ist in deinem Fall Member.membernumber - die Eindeutigkeit sichergestellt sein.

        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
          Hallo zusammen,

          klappt!
          Hätte nicht gedacht das es nur an dem Primary-Key liegt.
          Werde wohl doch mal wieder mein SQL Wissen intensiver auffrischen müssen.

          Danke noch mal an Euch!


          Gruß,
          mobas

          Comment

          Working...
          X