Changes between Version 2 and Version 3 of doc/developer/UserProfiles

Show
Ignore:
Timestamp:
01/09/07 13:48:18 (14 years ago)
Author:
benoitg
Comment:

Update to future-proof the data model

Legend:

Unmodified
Added
Removed
Modified
  • doc/developer/UserProfiles

    v2 v3  
    2121= Data model (only new tables shown) = 
    2222 
    23 == network_profile_fields ==  
     23== network_has_profile_templates == 
     24 * network_id -- Only one network per profile_field 
     25 * profile_template_id profile_template_id -- The profile template id 
     26 * is_invisible boolean -- If the user wishes to be in anonymous mode. 
     27 
     28== profile_templates == 
     29 * profile_template_id guuid -- The profile id 
     30 * creation_date timestamp 
     31 
     32== profile_template_fields ==  
    2433Basically a list of data fields (one for each network) that the user can fill.  Represented by the NetworkProfileField class, which inherits from the abstract ProfileField class.  Used by network administrators to define available fields in user profile. 
    2534 * field_id guuid PRIMARY KEY -- 
    26  * network_id -- Only one network per profile_field 
    2735 * display_label content_id -- The field's label for the display interface of the profile.  Content id, as it must be localizable, and may well actually be an image 
    2836 * admin_label content_id -- The field's label for the user's edit interface. 
     
    3341  1. Some semantic_id values will have special meaning to wifidog.  For example if an element with foaf:img exists in the profile, it will be used to display the user's custom avatar in the on-line user list.  The admin interface to define network profile fields must list all the semantic_id with special wifidog meaning. 
    3442 
     43== user_has_profiles == 
     44Used to link the user table with profiles. 
     45 * user_id user_id -- The user's id 
     46 * profile_id profile_id -- The profile id 
     47 * is_invisible boolean -- If the user wishes to be in anonymous mode. 
     48 
    3549== profiles == 
    36 The user frofile, used to link the user table with user_profile_fields.  Represented by the Profile class.  Technically, we could directly link the user table in user_profile_fields, but that would be undesirable.  The profile table is used instead for two reasons: 
     50The profile, represented by the Profile class.  Technically, we could directly link the user table in user_profile_fields, but that would be undesirable.  The profiles and user_has_profiles tables are used instead for two reasons: 
    3751 1. To allow adding a user agreement before creating his profile (once user agreement support is complete 
    3852 1. To allow the easy storage of non data elements, such as an invisible mode, wether other users can send the user messages, etc. 
    3953 1. To one day allow user's to have one profile for each network, if so desired. 
    40  * user_id user_id -- The user's id 
    41  * is_invisible boolean -- If the user wishes to be in anonymous mode. 
     54 * profile_id guuid -- The profile id 
    4255 * creation_date timestamp 
    4356 
    44 == user_profile_fields == 
    45 The actual profile values entered by the end user.  Represented by the NetworkProfileField class, which inherits from the abstract  ProfileField class. 
    46  * network_field_id network_profile_field_id ON DELETE CASCADE ON UPDATE CASCADE 
     57== profile_fields == 
     58The actual profile values entered by the end user.  Represented by the ProfileField class. 
     59 * template_field_id profile_template_field_id ON DELETE CASCADE ON UPDATE CASCADE 
    4760 * field_id guuid PRIMARY KEY 
    4861 * content_id content_id -- The actual link to the data