the main point is not there(FOREGIN KEY), It just an example to show that data consistency<br>problem can be solve in a different level.<br><br>"FOREGIN KEY" is not used to restrict asset uuids,<br>if "inventoryitems" and "avatarappearance" can be always in the same DB,<br>
"FOREGIN KEY" would be a good solution for itemID checking even in the future, in<br>distributed grid environment.<br><br>for designers, standalone mode is better than grid mode.<br>in standalone mode, originally has no such problem(appearance persistence).<br>
<br><div class="gmail_quote">regards,<br>lulurun<br><br><br>2008/6/11 f.d.g. <<a href="mailto:opensim-ml@fdg.org">opensim-ml@fdg.org</a>>:<br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
If I'm allowed to throw in my 2 cents...<br>
<div class="Ih2E3d"><br>
Sean Dague wrote:<br>
> On Tue, Jun 10, 2008 at 01:39:41AM +0900, liu xiaolu wrote:<br>
</div><div class="Ih2E3d">>> I think it is not necessary (or should not) to check assetID's avaliability<br>
>> by using C# code.<br>
>> It is a tired, buggy way to go, even you can make "getinventory"<br>
>> synchronous.<br>
>> Both of the MySQL, MSSQL have the native support of "FOREGIN KEY<br>
>> constaints".<br>
>> RDBMS should handle such task for us.<br>
><br>
> SQLite doesn't handle it natively, and we've not really used foreign<br>
> keys anywhere else in the design up till this point.<br>
<br>
</div>If SQLite doesn't handle it (natively), then please don't use it,<br>
because: OpenSim right now is (nearly) perfect for SL skin/(basic)<br>
clothes designers. They can use the official viewer for previewing,<br>
without having to use some 'strange' programs or relying on the beta<br>
grid or paying for every upload to SL. The ease of use of OpenSim is<br>
given by the simple setup - just hit enter several times. These<br>
designers surely don't want to mess around with setting up MySQL or<br>
MSSQL or any other database.<br>
<br>
<br>
The second reason for not relying on the RDBMS "FOREIGN KEY", in my<br>
opinion, is the question: Would it work with Capabilities?<br>
<br>
<br>
In the context of capabilities I hope I'm also allowed to explain my<br>
hope on to what OpenSim will develop in the future - and I think the<br>
"FOREIGN KEY" perhaps won't work in that situation:<br>
<br>
Right now UUIDs are used as a key to everything. As far as I can see<br>
these UUIDs are unique only on one single grid - on another grid the<br>
same UUID could point to something completely different. Thus,<br>
connecting two grids won't work. As far as I can see the realXtend<br>
people do the travelling from one grid to another 'simply' by loging out<br>
the current user and loging in a new user on the grid you travel to,<br>
thus needing to create accounts on all grids you want to travel to.<br>
<br>
Now, how about 'simply' prepending a fully qualified domain name to the<br>
UUIDs? Then the grid you just travelled to could get all the needed<br>
data, like avatar appearance, by contacting the 'home' grid of that<br>
avatar and caching this needed data as long as the avatar is on that<br>
grid - and which grid is the 'home' grid of that avatar it knows from<br>
the FQDN prepented to the UUID of that avatar. By the way, I think it<br>
then would be needed to prepend a FQDN to every UUID to prevent<br>
duplicate UUIDs, like UUIDs for skins, clothes, attachments and so on.<br>
<br>
As far as I can see, this "prepending a FQDN to a UUID" is what<br>
capabilities look like, so with the proper use of capabilties throughout<br>
the whole system the implementation of 'grid-hopping' would be rather easy.<br>
<br>
<br>
<br>
Bye<br>
<font color="#888888">f.d.g.<br>
</font><div><div></div><div class="Wj3C7c">_______________________________________________<br>
Opensim-dev mailing list<br>
<a href="mailto:Opensim-dev@lists.berlios.de">Opensim-dev@lists.berlios.de</a><br>
<a href="https://lists.berlios.de/mailman/listinfo/opensim-dev" target="_blank">https://lists.berlios.de/mailman/listinfo/opensim-dev</a><br>
</div></div></blockquote></div><br><br clear="all"><br>-- <br>Lulurun