Duda base de datos campos

Duda base de datos campos

de Carlos Vidal Varo -
Número de respuestas: 2
Hola,

Siento molestaros con estas tonterías, pero no soy capaz de encontrar respuestas ni por los foros ni por internet en general...A ver si alguien me puede ayudar esta vez;

Estoy creando una base de datos para mi módulo y la verdad es que la declaración mediante el xmldb es bastante clara. Sin embargo, tengo una duda acerca de los índices...El tema es que creo que entiendo la utilidad de un índice dentro de una tabla de una base de datos (sirven para agilizar la búsqueda ¿no?), pero ¿Cómo puedo usar los índices cuando programe mi módulo? ¿Sabéis de algun ejemplo en el código de cualquier módulo de los que ya vienen incorporados en los que se usen los índices? ¿Simplemente van a agilizar la búsqueda cuando cree mi sentencia sql y busque en las tablas?

Por si no sabéis a que me refiero, introduzco estas líneas de código, sacadas de un "install.xml":

<INDEXES>
<INDEX NAME="userid" UNIQUE="false" FIELDS="userid" NEXT="created"/>
<INDEX NAME="created" UNIQUE="false" FIELDS="created" PREVIOUS="userid" NEXT="mailed"/>
<INDEX NAME="mailed" UNIQUE="false" FIELDS="mailed" PREVIOUS="created"/></INDEXES>

La verdad es que me vendría bien algo de documentación sobre el xmldb este...
Gracias de antemano!
Promedio de valoraciones: -
En respuesta a Carlos Vidal Varo

Re: Duda base de datos campos

de Xavier Paz -
Los índices lo usa el sistema gestor de la base de datos a nivel interno, para ordenar y acceder más rápidamente a la información almacenada. Es decir, que hace uso de ellos de forma automática, en caso de que existan.

Si no recuerdo mal, las funciones básicas de Moodle para obtener registros de las tablas no tienen parámetros extra para indicar el uso de índices. A lo mejor se puede especificar en las consultas SQL, pero puede que dependa de las peculiaridades del sistema gestor que haya por debajo (MySQL, PosgreSQL, Oracle, etc..) lo cual conllevaría problemas de dependencia.

En cualquier caso, yo no me preocuparía en exceso porque el uso de índices casi siempre es ventajoso, resuelves las cosas en menos tiempo, y nadie mejor que el sistema gestor de base de datos sabe cuando y como usarlos cuando hay que obtener la información.

Sobre XMLDB, tienes varias referencias en docs.moodle.org:
- http://docs.moodle.org/en/Development:XMLDB_defining_an_XML_structure
- http://docs.moodle.org/en/XMLDB_editor