<jdbcGroupProvider>
<groupCountSQL>SELECT count(*) FROM myGroups</groupCountSQL>
<allGroupsSQL>SELECT groupName FROM myGroups</allGroupsSQL>
<userGroupsSQL>SELECT groupName FORM myGroupUsers WHERE username=?</userGroupsSQL>
<descriptionSQL>SELECT groupDescription FROM myGroups WHERE groupName=?</descriptionSQL>
<loadMembersSQL>SELECT username FORM myGroupUsers WHERE groupName=? AND isAdmin='N'</loadMembersSQL>
<loadAdminsSQL>SELECT username FORM myGroupUsers WHERE groupName=? AND isAdmin='Y'</loadAdminsSQL>
</jdbcGroupProvider>
I believe it was a bit short sighted to assume groups have unique names. There should be the option to query “WHERE name=? AND account=?” since two users may have groups with the same name but different descriptions.
I don’t mean for the sake of changing them, though. That same limitation is in effect on any database integration setup (like with accounts).
My concern is this, user A and user B both have a group named “Friends” but with different people in it and different descriptions. I can’t simply query for a group named “Friends” as it would always return one accounts groups (which is wrong).
The way I worked around this was setting the group name to be a unique group id in the table, and the description as the group name, but that means it is no longer possible to retrieve the true group description. I would not need to use the group id since account_id to group name is a unique constraint.
Here is my table’s create structure in case it helps:
CREATE TABLE groups ( group_id bigint(20) unsigned NOT NULL auto_increment, account_id bigint(20) unsigned NOT NULL, name varchar(255) NOT NULL, description text NOT NULL, group_created datetime default NULL, group_modified datetime default NULL,
PRIMARY KEY (group_id),
KEY account_id (account_id)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
There groups are use for more than just our chat system, so it would be awesome to be able to fully integrate them.
if later on, we add a new group and bunch of memebers to this group to the external database, which openfire integrated with, will openfire pick it up right away without restart?