If I understand this right some other words to consider might be "tag"
or "label" or the like instead of metadata. Technically an entity
definition is itself "meta data" because it describes the data. In a
way this would be a sort of "meta meta data" because it is describes
the stuff that describes the data.
For this specific need maybe something less generic might actually
work better. Are there really other types of tags that we would want
to associate with the entities, or should we just stick with something
BI-specific. Also, for the BI need would we need just one tag, or
multiple tags for a given entity? It might also be nice to have the
possible values, or at least some of them, built into the XSD to keep
them consistent and self-documenting.
I guess what I'm thinking after all this is that a simple attribute
like "olap-type" or something with the options in the XSD might be
both easier to use (self-document, less error-prone) and better fit
the problem.
-David
On Jul 27, 2008, at 10:21 AM, Jacopo Cappellato wrote:
I would like to add support for meta data information to entity and
field definitions: for example, define an entity as a dimensional
entity (for business intelligence analysis) or a fact entity, or a
star schema; or define a field as "additive" (for drill down
reports) etc...
Of course this information will not affect in any ways the table in
the database, it will just be available as an entity additional
information.
For example, in the bi component we have a screen that shows you all
the entities that are star schemas: right now this is done with an
hack using the entity package name (following a naming
convention)... I would like to use metadata information for this.
The entity definition could be similar to:
<entity entity-name="SalesInvoiceItemFact" package-
name="org.ofbiz.bi.fact.accounting" title="Sales Invoice Item Fact">
<description>A transaction fact entity for invoices.</
description>
<metadata>fact entity</metadata>
<metadata>accounting</metadata>
<field name="quantity" type="floating-point">
<description>Quantity invoiced. From
InvoiceItem.quantity</description>
<metadata>additive</metadata>
<metadata>...</metadata>
</field>
...
</entity>
I am not sure if "metadata" is the correct word... probably not (any
suggestion is much appreciated), maybe something like "keyword"
could be good, I don't know.
What do you think?
Should I go on and implement this?
Jacopo