Reasons not to extend user table?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-27-2015 10:12 AM
Currently working on a project where we have to track personnel who are not users. It's desired that these personnel records remain separate from user records. However, a lot of the information in the records is similar to that tracked in the the sys_user table. Because of that, it would be nice to extend the user table to create the table to store these records. I noticed that the sys_user table is not extendable by default I'm sure with reason. However, I'm wondering if there are serious reasons that extending the sys_user table should be avoided and it should be avoided at all costs, or if it's something that we could consider as an option.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-27-2015 01:03 PM
I had a similar situation a while back that required some strategy. The big things to consider are the integrations of sys_user elsewhere in the instance. It's an easy solution to extend since the fields are all there, but think about the caller field on the incident form. That pulls from sys_user. You probably don't want your personnel showing up in that list if they're not real 'users'. You could always create ref_qualifiers where sys_class_name == 'sys_user', but that's kind of hacky.
Conceptually, extending a table is for very similar items. sys_user is a table of user records, not people records. Based on what you mentioned in the post, I would create a new standalone table to hold these records. In my opinion it's not worth the headache of extending...
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-27-2015 01:50 PM
That's exactly the kind of experience that I was looking for. We wanted some of the functionality of the user table, but always knew it was not ideal to extended. This puts the kibosh on the idea for good. Thanks very much!

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-27-2015 05:44 PM
I second Zach's response.
If you extend the sys_user table, these extended records will show in every sys_user list or reference field. It may end up being more work to filter this all out then to utilize some user table fields. Given your table seems to be only for data, you probably don't want some of the functionality that comes with sys_user.
ServiceNow Nerd
ServiceNow Developer MVP 2020-2022
ServiceNow Community MVP 2019-2022