Products

Solutions

Resources

Partners

Community

Blog

About

QA

Ideas Test

New Community Website

Ordinarily, you'd be at the right spot, but we've recently launched a brand new community website... For the community, by the community.

Yay... Take Me to the Community!

Welcome to the DNN Community Forums, your preferred source of online community support for all things related to DNN.
In order to participate you must be a registered DNNizen

HomeHomeDNN Open Source...DNN Open Source...Module ForumsModule ForumsBlogBlogDatabase referential integrity for blog moduleDatabase referential integrity for blog module
Previous
 
Next
New Post
11/2/2007 2:09 AM
 

Hi there,

Just a quick note to let you know that the blog module is missing a database referential integrity link from Blog_Blogs.UserID >>> Users.UserID

This is the only one I discovered so far, but it's a bit of a worry that such a high-profile product like DNN doesn't even have the absolute basics of database design built into it.

Hope to see this oversight corrected soon!

Best regards,

Rod

 
New Post
11/2/2007 2:59 AM
 
  1. Modules shall not create references to core tables, as core tables are subject to change. using triggers or business logic is recommended.
  2. referential integrity from users to blog entries is not a good idea, cause in this case, when the user is deleted, all his blog posts will be deleted as well, which is not necessarily desired.

Cheers from Germany,
Sebastian Leupold

dnnWerk - The DotNetNuke Experts   German Spoken DotNetNuke User Group

Speed up your DNN Websites with TurboDNN
 
New Post
11/3/2007 4:03 AM
 

Sebastian,

Thanks for your (curt) answer.  Are you serious?  I hope not!

Who made the ruling that "Modules shall not create references to core tables, as core tables are subject to change".  Does this person understand relational databases and the impact of such poor design?  This situation occurs all the time in the real world of database applications, and when it does, the database is changed to accomodate such changes - it's part of the upgrade process!  Making such a statement is synonomous to saying "A rule cannot be set because in the future the rules might change"!?  This is bad and faulty reasoning.

I can't understand why DNN core modules and DNN "approved" modules are not designed with each other in mind.  To my mind, this represents a serious lack of communication between the core dnn team, and those who are the project leads for each of the modules.  This would never work in the real world and would be totally unacceptable.  Referential integrity is taught in "Database 101", and any solution that does not implement this is a disaster waiting to happen.  This needs serious attention and correction.

Your second reason for not implementing refential integrity is not valid.  Again, this situation is part of the "nature of the beast" in any database application.  The solution lies in a correct architecture.  If an entity has a relational link to something, then instead of out-right deleting the record from the database, you need to mark them as deleted and treat them accordingly.  A simple "IsDeleted" boolean (bit) field along with a few database views will take care of this.  This is standard stuff!

If this is some sort of official DNN ruling, then DNN is in serious trouble.  Sooner or later there is going to be a big DNN database crash when some bug, or other conversion process goes astray and a lot of people are going to have a lot of corrupt databases.

I make my comments in the spirit of product improvement and I come from a position of having to support many database products that have not had basic database referential integrity rules set.  Like I said, sooner or later, this is going to end in tears if it isn't addressed soon.

Any DBAs out there willing to comment?

Best regards,

Rod


 
Previous
 
Next
HomeHomeDNN Open Source...DNN Open Source...Module ForumsModule ForumsBlogBlogDatabase referential integrity for blog moduleDatabase referential integrity for blog module


These Forums are dedicated to discussion of DNN Platform and Evoq Solutions.

For the benefit of the community and to protect the integrity of the ecosystem, please observe the following posting guidelines:

  1. No Advertising. This includes promotion of commercial and non-commercial products or services which are not directly related to DNN.
  2. No vendor trolling / poaching. If someone posts about a vendor issue, allow the vendor or other customers to respond. Any post that looks like trolling / poaching will be removed.
  3. Discussion or promotion of DNN Platform product releases under a different brand name are strictly prohibited.
  4. No Flaming or Trolling.
  5. No Profanity, Racism, or Prejudice.
  6. Site Moderators have the final word on approving / removing a thread or post or comment.
  7. English language posting only, please.
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out
What is Liquid Content?
Find Out