Changes between Initial Version and Version 1 of FDORfc15


Ignore:
Timestamp:
Feb 9, 2008, 6:00:29 AM (16 years ago)
Author:
MaksimS
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • FDORfc15

    v1 v1  
     1= FDO RFC 15 – FDO PropertyValueConstraintDictionary Class =
     2
     3This page contains a request for comments document (RFC) for the FDO Open Source project. 
     4More FDO RFCs can be found on the [wiki:FDORfcs RFCs] page.
     5
     6== Status ==
     7 
     8||RFC Template Version||(1.0)||
     9||Submission Date||February 9, 2008||
     10||Last Modified||Maksim Sestic [[Timestamp]]||
     11||Author||Maksim Sestic||
     12||RFC Status||Draft||
     13||Implementation Status ||Not Applicable||
     14||Proposed Milestone||3.3.1.0||
     15||Assigned PSC guide(s)||none||
     16||'''Voting History'''|| ||
     17||+1||||
     18||+0||||
     19||-0||||
     20||-1||||
     21
     22== Overview ==
     23
     24Presently, `PropertyValueConstraintList` may contain only plain list of predefined values forced upon particular
     25`PropertyValue` (minus null value). In my opinion, it somehow beats sole purpose of Constraints in a view of
     26overall datastore consolidation. Therefor, suggestion is to create new class named
     27`PropertyValueConstraintDictionary` (or whatever) that will keep pairs of [object,string] values, where object is a
     28key dictionary member (an item in present `PropertyValueConstraintList`), while associated string represents
     29localized description of the value itself.
     30
     31Example:
     32
     33{{{
     34RoadTypePropertyValueConstraintDictionary:
     35
     36null , "n/a"
     370    , "Highway"
     381    , "Main road"
     392    , "Street"
     40...
     41}}}
     42
     43Therefor enforcing sound "rules" for data types and saving lots of storage - it's not clever to keep underlying RoadTypePropertyValue as String since it takes too much space, it's not possible to change associated meaning of data once the data is in the store, while schema user from different country may not understand "by default" what Main road means, etc.
     44
     45On the client side, developers may build more robust UIs to deal with FDO-based data. I.e. a ComboBox instead of plain text field, where combo has it's values set to predefined `PropertyValueConstraintDictionary` object range and displayed members consist of associated string values. In that way users will be able to pick between "Highway", "Main road" or "Street", while underlying datastore keeps it's `short` or `boolean` (or any other) universal representation.
     46
     47
     48== Introduced Pros ==
     49
     50 *  Major storage saver
     51 * Splits data value from data representation (0 = "Highway" or True = "Yes")
     52 * Enables creating of flags via binary math (1+2 = 3 = "Main road" AND "Street")
     53 * Resolves data Localization issues
     54 * Enables more advanced UI solutions on client side