mssql pk <-> fk problem



  • hallo,

    ich habe seit einiger zeit ein problem, das ich eine fk-beziehung nicht definieren kann und ich weiß nicht genau warum (möglicherweise zirkelbezug-problem wegen der update+delete cascade eigenschaft der beziehung).

    das szenario: 2 tabellen a+b mit insgesamt 3 feldern, die alle dasselbe feld
    "sample_id" (nvarchar 64) darstellen.

    a
    ------------
    PK sample_id

    b
    ------------
    PK sample_id
    PK origin

    die sample_id in tabelle a stellt den pk dar, tabelle b ist praktisch eine
    historientabelle, welche das entstehen neuer samples aus alten abbildet.
    sample_id und origin in tabelle b müssen zusammen eindeutig sein, da es zu einem sample nur einen "vater" (origin) geben kann. ich habe jetzt einen fk in
    tabelle b angelegt: dessen sample_id verweist auf die sample_id in tabelle a mit
    update+delete cascade. wenn ich jetzt eine zweite beziehung anlegen will,
    nämlich das feld origin von tabelle b zur sample_id von tabelle a (wieder mit
    update+delete cascade) dann macht er das nicht. ich brauche das aber, denn wenn ein sample umbenannt wird, müssen auch alle einträge in der historientabelle b
    umbenannt werden (bisher benennt er nur deren sample_id um).

    weiß jemand, wie ich das problem lösen kann, bzw. was das problem überhaupt genau ist.

    mdf

    tenim