<?xml version="1.0" encoding="windows-1252"?>
<node id="665052" title="Re^4: Preventing autovivification while accessing value" created="2008-01-29 21:59:33" updated="2008-01-29 16:59:33">
<type id="11">
note</type>
<author id="607636">
naikonta</author>
<data>
<field name="doctext">
You don't have to bet on something clearly stated. Everyone else who read my motivation in OP won't bet against you :-) 

&lt;p&gt;Anyway, accessing deeply nested data is not the problem, neither is avoiding autovivification. I designed the data structure the way it was. I learn from the experience that structuring my database right would make me programming better.

&lt;p&gt;But I see some point in your statement, and I agree with that. That's why I put the code accessing the data directly in a method (&lt;c&gt;somefunc()&lt;/c&gt; in my example). And I have other methods doing this, accessing different branch from the same tree. They all check carefully to avoid autovivification to avoid larger problem for the next check. 

&lt;p&gt;Only those methods (in one class) need to access the data directly so client modules don't need to know the detail. The latter accomplish their tasks based on higher abstraction.

&lt;div class="pmsig"&gt;&lt;div class="pmsig-607636"&gt;
&lt;hr size="1" noshade="1"&gt;
&lt;p align="right"&gt;&lt;small&gt;
&lt;i&gt;Open source softwares? Share and enjoy. Make profit from them if you can. Yet, share and enjoy!&lt;/i&gt;&lt;/small&gt;&lt;/p&gt;
&lt;/div&gt;&lt;/div&gt;</field>
<field name="root_node">
664688</field>
<field name="parent_node">
664912</field>
</data>
</node>
