Dit document is vertaald door AI. Voor onnauwkeurigheden, raadpleeg de Engelse versie
Binnen de NocoBase plugin-ontwikkeling is een collectie (gegevenstabel) een van de meest fundamentele concepten. U kunt de structuur van gegevenstabellen in plugins toevoegen of aanpassen door collecties te definiëren of uit te breiden. In tegenstelling tot gegevenstabellen die u via de interface voor gegevensbronbeheer aanmaakt, zijn collecties die in code zijn gedefinieerd meestal systeemgerelateerde metadatatabellen en verschijnen ze niet in de lijst van gegevensbronbeheer.
Volgens de conventionele mapstructuur plaatst u collectiebestanden in de map ./src/server/collections. Gebruik defineCollection() om nieuwe tabellen aan te maken en extendCollection() om bestaande tabellen uit te breiden.
In het bovenstaande voorbeeld:
name: De tabelnaam (er wordt automatisch een tabel met dezelfde naam in de database aangemaakt).title: De weergavenaam van de tabel in de interface.fields: De verzameling velden, waarbij elk veld eigenschappen zoals type en name bevat.Wanneer u velden wilt toevoegen of configuraties wilt wijzigen voor collecties van andere plugins, kunt u extendCollection() gebruiken:
Na het activeren van de plugin voegt het systeem automatisch het veld isPublished toe aan de bestaande articles-tabel.
De conventionele map wordt geladen voordat alle load()-methoden van plugins worden uitgevoerd, waardoor afhankelijkheidsproblemen door niet-geladen gegevenstabellen worden voorkomen.
Wanneer een plugin voor het eerst wordt geactiveerd, synchroniseert het systeem automatisch de collectieconfiguraties met de databasestructuur. Als de plugin al is geïnstalleerd en actief is, moet u na het toevoegen of wijzigen van collecties handmatig de upgrade-opdracht uitvoeren:
Als er tijdens de synchronisatie uitzonderingen of 'dirty data' optreden, kunt u de tabelstructuur opnieuw opbouwen door de applicatie opnieuw te installeren:
Nadat u een collectie heeft gedefinieerd, genereert het systeem automatisch een corresponderende resource, waarop u direct CRUD-bewerkingen kunt uitvoeren via de API. Zie Resourcebeheer.