You can set up relationships as follows - (dbman sql only supports one to many relationships between two tables)
So you could set up one to many relationships as follows (where car-func-obj is your fourth table):
person -> car-func-obj
function -> car-func-obj
object -> car-func-obj
Once you've done that, you should be able to get dbman sql to generate add / modify / delete screens for the car-func-obj table. The add form could have 3 dropdowns on it, one for each foreign key.
You should also be able to set up queries to display the information in your 4 tables. Queries work pretty well, but it isn't easy to modify the layout / look of the search results.
Are all combinations of person / function / object valid? If not you may run into problems - see my recent post on 2 select fields.
In general I would say from my limited experience of dbman sql that it will probably do what you want. However if it is important to you how your screens look and exactly what information is displayed on them, you will have quite a lot of work to do modifying page templates, and may need to get into hacking the code a bit to get it to do what you want. There's quite a steep learning curve here (unless you are fluent in object perl) and the manuals currently available are inadequate. You will get some helpful replies here.
Do others agree?
(Information about relationships is stored in the files in the /admin/defs directory. I'm not sure if it's also stored elsewhere)