Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Bug: Wrong database design structure #30104

Open
sabersaberi2 opened this issue Jul 15, 2020 · 7 comments
Open

Bug: Wrong database design structure #30104

sabersaberi2 opened this issue Jul 15, 2020 · 7 comments

Comments

@sabersaberi2
Copy link

Steps to reproduce the issue

hi and thanks lovely Joomla
this Issue is related to #30101 but not exactly to that. it is about wrong UX and this issue about wrong Database structure.
to reproduce the issue you must generate 2000 joomla usergroups and then go to global configuration of joomla and then try to save that. (for this maybe you need increase some php variable such as max_input_var or max_execution_time or any other )
after save you get this error:
Error decoding JSON data: Control character error, possibly incorrectly encoded

Expected result

save without problem if i set correctly php.ini

Actual result

return this error after save:
Error decoding JSON data: Control character error, possibly incorrectly encoded

System information (as much as possible)

last joomla version 3.9.20
correct php.ini setting

Additional comments

the problem that limit count of joomla usergroups, is type of "params" column of _extensions table. i change TEXT type to MEDIUMTEXT to can save global configuration. Text Filter Settings tab in the global configuration menu, want save filters in the params column and TEXT type limit is 65,535 characters.

@HLeithner
Copy link
Member

Can you explain your use case for 2000 usergroups please?

@sabersaberi2
Copy link
Author

sabersaberi2 commented Jul 15, 2020

@HLeithner
it is only an example. and it is maybe future of my website. because i use joomdle
it is connect Joomla to Moodle and you can set some setting to create 2 usergroups in Joomla when you create one course in Moodle. in this way when you have 600 course in Moodle , you almost have 1200 usergroups in Joomla.
and now i create a component to create online classrooms in Joomla and in my scenario each classroom must have two usergroup and if Joomla has a limitation to create usergroups i must say to my users that you can not create more than for example 500 classroom in your Joomla website

@alikon
Copy link
Contributor

alikon commented Jul 15, 2020

an alter table for the field "params" of the table #__extensions from TEXT to MEDIUMTEXT/VARCHAR/BLOB/CLOB or whatever shouldn't be a big issue......what i'm mostly concerned about is the misuse of that table field
surely my bad but i still cannot understand the need of 1 Moodle course = 2 Joomla usergroup

@sabersaberi2
Copy link
Author

@alikon
One for teacher and one for student in each course.
It is more clear that is limitation and problem creator for create huge Joomla usergroups and maybe for you it is easy to understand this problem and change type of column but most of user maybe has not any knowledge about MySQL and if they see
Error decoding JSON data: Control character error, possibly incorrectly encoded
They can not resolved that easily.
All things are difficult before they are easy.
Maybe it is better for joomla to save Text filter in other seperate table. Professional admin of joomla project better understand than me. I am not professional system designer.

@HLeithner
Copy link
Member

if you use a json field in the database you have a good chance that it's wrong. Beside this using joomla usergroups for only one or 2 persons seams wrong too and should be handle by the component a bit smarter at least the joomla acl system is not designed for so many user groups (as you found out)... since changing the json column to something better is a bigger task I wouldn't expect it before 5.0.

Changing the params column to a bigger column doesn't makes it better, because this make joomla much slower depending how the table is used the complete content of the field have to be transferred between db server and webserver and in worst case the json gets decoded...

@Quy
Copy link
Contributor

Quy commented Jul 18, 2020

the problem that limit count of joomla usergroups, is type of "params" column of _extensions table. i change TEXT type to MEDIUMTEXT to can save global configuration. Text Filter Settings tab in the global configuration menu, want save filters in the params column and TEXT type limit is 65,535 characters.

See @wilsonge #25702 (comment) against this.

@sabersaberi2
Copy link
Author

sabersaberi2 commented Jul 18, 2020

@Quy
Thank you but I don't talk about any other external plugin or extension. I want use Joomla with 2000 usergroups. If it is not possible, simply say Joomla have an limitation in number of usergroups. I say exactly similar Wilsonge's logic. The cell must not save many configuration because I have issue with performance in loading global configuration. Maybe filter setting parameters need separate table as I say in the previous comment, not save json in a cell. It is not result of any extension, it is individual Joomla issue.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

6 participants