More than one path between M-M tables





.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty{ margin-bottom:0;
}







0















I'm trying to figure out if it is bad practice to have more than one path between tables that are related via many-to-many relationships.



I have 3 user-facing tables: Dupe, Cue, and Take. There is a many-to-many relationship between Dupes and Cues, and there is a many-to-many relationship between Takes and the join table Dupe_Cues.



database schema diagram



The user can add, delete, and modify Cues, Dupes and Takes, and she can make links between Cues/Dupes and Cues/Takes, but there are also certain situations when the user will want to directly add a Take to a Dupe, without creating a cue. So I figure the simplest thing to do is create a Dupe_Take table. The problem is, I'm worried it will cause referential issues and isn't good database design.



If I don't create a Dupe_Take table, I suppose I could add a field to the Cue table, like "b_CreatedByUser". Then, whenever the user does a query, I filter out Cues where b_CreatedByUser=FALSE so that Cues that are only used to link Takes to Dupes are never shown to the user, but that sounds sloppy and difficult to maintain.



What is the best practice? What factors should I be considering?



Thanks for any advice.










share|improve this question







New contributor




slondike is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





















  • there are also certain situations when the user will want to directly add a Take to a Dupe, without creating a cue. If so your referential scheme is wrong. There is no "major" and "minor" references.

    – Akina
    11 mins ago


















0















I'm trying to figure out if it is bad practice to have more than one path between tables that are related via many-to-many relationships.



I have 3 user-facing tables: Dupe, Cue, and Take. There is a many-to-many relationship between Dupes and Cues, and there is a many-to-many relationship between Takes and the join table Dupe_Cues.



database schema diagram



The user can add, delete, and modify Cues, Dupes and Takes, and she can make links between Cues/Dupes and Cues/Takes, but there are also certain situations when the user will want to directly add a Take to a Dupe, without creating a cue. So I figure the simplest thing to do is create a Dupe_Take table. The problem is, I'm worried it will cause referential issues and isn't good database design.



If I don't create a Dupe_Take table, I suppose I could add a field to the Cue table, like "b_CreatedByUser". Then, whenever the user does a query, I filter out Cues where b_CreatedByUser=FALSE so that Cues that are only used to link Takes to Dupes are never shown to the user, but that sounds sloppy and difficult to maintain.



What is the best practice? What factors should I be considering?



Thanks for any advice.










share|improve this question







New contributor




slondike is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





















  • there are also certain situations when the user will want to directly add a Take to a Dupe, without creating a cue. If so your referential scheme is wrong. There is no "major" and "minor" references.

    – Akina
    11 mins ago














0












0








0








I'm trying to figure out if it is bad practice to have more than one path between tables that are related via many-to-many relationships.



I have 3 user-facing tables: Dupe, Cue, and Take. There is a many-to-many relationship between Dupes and Cues, and there is a many-to-many relationship between Takes and the join table Dupe_Cues.



database schema diagram



The user can add, delete, and modify Cues, Dupes and Takes, and she can make links between Cues/Dupes and Cues/Takes, but there are also certain situations when the user will want to directly add a Take to a Dupe, without creating a cue. So I figure the simplest thing to do is create a Dupe_Take table. The problem is, I'm worried it will cause referential issues and isn't good database design.



If I don't create a Dupe_Take table, I suppose I could add a field to the Cue table, like "b_CreatedByUser". Then, whenever the user does a query, I filter out Cues where b_CreatedByUser=FALSE so that Cues that are only used to link Takes to Dupes are never shown to the user, but that sounds sloppy and difficult to maintain.



What is the best practice? What factors should I be considering?



Thanks for any advice.










share|improve this question







New contributor




slondike is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












I'm trying to figure out if it is bad practice to have more than one path between tables that are related via many-to-many relationships.



I have 3 user-facing tables: Dupe, Cue, and Take. There is a many-to-many relationship between Dupes and Cues, and there is a many-to-many relationship between Takes and the join table Dupe_Cues.



database schema diagram



The user can add, delete, and modify Cues, Dupes and Takes, and she can make links between Cues/Dupes and Cues/Takes, but there are also certain situations when the user will want to directly add a Take to a Dupe, without creating a cue. So I figure the simplest thing to do is create a Dupe_Take table. The problem is, I'm worried it will cause referential issues and isn't good database design.



If I don't create a Dupe_Take table, I suppose I could add a field to the Cue table, like "b_CreatedByUser". Then, whenever the user does a query, I filter out Cues where b_CreatedByUser=FALSE so that Cues that are only used to link Takes to Dupes are never shown to the user, but that sounds sloppy and difficult to maintain.



What is the best practice? What factors should I be considering?



Thanks for any advice.







referential-integrity many-to-many






share|improve this question







New contributor




slondike is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question







New contributor




slondike is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question






New contributor




slondike is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked 16 mins ago









slondikeslondike

1




1




New contributor




slondike is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





slondike is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






slondike is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.













  • there are also certain situations when the user will want to directly add a Take to a Dupe, without creating a cue. If so your referential scheme is wrong. There is no "major" and "minor" references.

    – Akina
    11 mins ago



















  • there are also certain situations when the user will want to directly add a Take to a Dupe, without creating a cue. If so your referential scheme is wrong. There is no "major" and "minor" references.

    – Akina
    11 mins ago

















there are also certain situations when the user will want to directly add a Take to a Dupe, without creating a cue. If so your referential scheme is wrong. There is no "major" and "minor" references.

– Akina
11 mins ago





there are also certain situations when the user will want to directly add a Take to a Dupe, without creating a cue. If so your referential scheme is wrong. There is no "major" and "minor" references.

– Akina
11 mins ago










0






active

oldest

votes












Your Answer








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "182"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});






slondike is a new contributor. Be nice, and check out our Code of Conduct.










draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f234517%2fmore-than-one-path-between-m-m-tables%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























0






active

oldest

votes








0






active

oldest

votes









active

oldest

votes






active

oldest

votes








slondike is a new contributor. Be nice, and check out our Code of Conduct.










draft saved

draft discarded


















slondike is a new contributor. Be nice, and check out our Code of Conduct.













slondike is a new contributor. Be nice, and check out our Code of Conduct.












slondike is a new contributor. Be nice, and check out our Code of Conduct.
















Thanks for contributing an answer to Database Administrators Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fdba.stackexchange.com%2fquestions%2f234517%2fmore-than-one-path-between-m-m-tables%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Liste der Baudenkmale in Friedland (Mecklenburg)

Single-Malt-Whisky

Czorneboh