2009-06-01 3 views
2

Comment puis-je me débarrasser d'une relation circulaire dans ma structure db? J'ai une entité appelée Item. Un élément peut avoir un ou plusieurs sous-éléments (relation circulaire). Un élément peut avoir plus d'un taux en fonction de l'année financière en cours (entité rate_per_year créée à cette fin et relation de 1 m). Si un élément a un sous-élément, il peut ne pas avoir de taux (j'ai besoin que cette relation soit rompue si un sous-élément est créé). Toute aide est la bienvenue.suppression d'une relation de base de données circulaire

Merci à l'avance

Répondre

1

Si la item-> chaîne peut continuer à sous-élément à plusieurs niveaux, alors vous avez pas vraiment le choix, mais comme vous l'avez. Si seul un élément de niveau supérieur peut avoir des sous-éléments, vous pouvez répartir la structure en deux niveaux, éventuellement item et group, où seul item peut avoir un taux et peut avoir ou non un group.

0

Ce que vous avez décrit est le problème d'explosion des pièces. Quand j'étais à l'université, c'était quelque chose qui ne pouvait pas être résolu par les bases de données relationnelles, et qui était l'un des principaux arguments de vente des bases de données orientées objet. Il semble que les choses se soient déplacées maintenant, en fonction de la base de données que vous utilisez.

Cette page semble intéressante Sql Anywhere Users Guide - Parts explosion problems, mais malheureusement vous n'avez pas mentionné le SGBDR que vous utilisiez. Il semble également être pris en charge par SQL Server 2005, alors peut-être que vous aurez de la chance. Essayez de rechercher "Requêtes SQL récursives" et quelle que soit la base de données que vous utilisez.

Bonne chance

Questions connexes