The PageUserManagementPermissions column handles permissions on the specific page, through storing XML data in the field.
Besides being the worst possible database storage form, reducing the page table to a 1st normal form table. It greatly limits the number of persission assignments possible.
Permissions should be handled through relational tables.
I upped the field to nvarchar(MAX) which eliminates the problem until the XML reaches 2^31-1 bytes in size
Developer forum
E-mail notifications
Bug: PageUserManagementPermissions
Posted on 06/07/2010 13:16:54
Replies
Nicolai Høeg Pedersen
Posted on 06/07/2010 14:01:05
In theory you are right about DB layout.
But performance wise it is so much better to use this approach...
Field should have been Nvarchar(max) - sent to QA for bugging.
Thanks for your input.
But performance wise it is so much better to use this approach...
Field should have been Nvarchar(max) - sent to QA for bugging.
Thanks for your input.
Posted on 07/07/2010 09:19:24
Don't let poor programming fool you into thinking 1st normal for is the overall fastest database structure.
As you begin to pour more and more functions, the program becomming more and more complex, you will experience more and more code has to perform extra tasks to unify data, becuase it was not stored in a scalable manner in the first place.
In other words: 1st normal form will out perform 3rd+ normal form in simple application. But as you build more functionality into this simple app. More and more processing power is needed to transform data into comparable formats. Where as a database storing data in the smallest possible chunks, keeping data comparable in its raw form, never have to worry about this.
What happens when you want to extend your rights-management to cover frontend forums? Or real (read/write/change/delete/create) rights management in the file-archive?
As you begin to pour more and more functions, the program becomming more and more complex, you will experience more and more code has to perform extra tasks to unify data, becuase it was not stored in a scalable manner in the first place.
In other words: 1st normal form will out perform 3rd+ normal form in simple application. But as you build more functionality into this simple app. More and more processing power is needed to transform data into comparable formats. Where as a database storing data in the smallest possible chunks, keeping data comparable in its raw form, never have to worry about this.
What happens when you want to extend your rights-management to cover frontend forums? Or real (read/write/change/delete/create) rights management in the file-archive?