I noted something curious.. extract a line group, and the uuid in the directoryNumber tag is not the pkid of the actual directory number in the numplan table. Rather, it is the pkid of the entry in the mapping table LineGroupNumPlanMap. As far as I can remember, the uuid tag usually refers to the entry in the numplan table. In fact, I just tested with phone, and memory did serve me right.. in the <dirn> tag in a getPhone response, the uuid is the pkid of the entry of the directory number in the numplan table.
So - is this by design or a bug? If by design.. why is it different from phone?
The answer is in the name. A pkid is an indexed field and must be unique. Hence the need for a mapping table, since there are many cases where pkid has to point to an id in another table where that id occurs multiple times. So you won't always see a one-to-one relationship between pkid in two or more different tables.
but, don't we have the exact same situation for phone/device profile - two tables and a helper table to make the link.
The device(profile) is in the device table, the number in the numplan table, and they are linked together using the devicenumplanmap table (the pkid of the entry in the devicenumplanmap table is returned in the <line> tag.. and in the <dirn> tag we have the uuid of the entry in the numplan table)).