I have working website in PHP with a MySQL backend which has several tables for different purposes.
This site is based on different parts or 'environments' like a bugtracker, project management, etc.
There is one central 'users' database which has all the users with the associated details in them.

In each of previously mentioned 'environments', which all have their own set of tables, it is possible to specify a user ID in certain fields.
e.g. the bugtracker table has a column called `AssignedTo` which contains the user ID's of users to whom bugs have been assigned.

The field type of these 'user ID' columns (like the `AssignedTo` example) is the same as the `UserId` field in the central users table, which is an unsigned, zerofilled INT(5) field.

Now I have a request from the users of this site to also allow to specify user groups in certain of these user ID fields.

So again reffering to the `AssignedTo` example, it should now be possible to also assigned a bug to a user group, instead of a specific user.

What's the best way to do this regarding the PHP scripting and the database layout?
Now I have all these fields set to the same type as the `UserId` of the central users table, which is INT(5).
However my `UserGroupId` field in the UserGroups table, is of a different format, INT(3).

I could make this field also into an INT(5) field, but that would not solve the 2nd issue I'm having: how to see whether the `AssignedTo` value is reffering to a specific user, or to a usergroup.

I was thinking about make the UserGroupId field start from 99999 and counting downwards, while the UserId field is starting from 00001 and counting upwards, thus assuming that if the `AssignedTo` starts with 9, it's reffering to a usergroup.
But this doesn't seem like a clean solution to me...

Any better ideas?
Thanks!