Yes, my example was all in one file.. Thats generally considered the worse way to do it.. put them each in their own files if you can. (My excuse is, mine was created by the sql translator script, which can only output one file at present, and Ive been too lazy to change it ;)
Your schema looks fairly good to me, though I think you have the arguments reversed in that has_one().. In fact, Im not sure what relationship it's describing. You're saying each system row has an corresponding entry in the users table, with the ID from the system table in it? That doesnt look like what you mean. Is Point_of_Contact a role? Can you show some example data for that please?