Convention for Database Tables: Difference between revisions

From Chorke Wiki
Jump to navigation Jump to search
No edit summary
Line 1: Line 1:
<source lang="c">
static char *base36enc(long unsigned int value) {
char base36[36] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
/* log(2**64) / log(36) = 12.38 => max 13 char + '\0' */
char buffer[14];
unsigned int offset = sizeof(buffer);
buffer[--offset] = '\0';
do {
buffer[--offset] = base36[value % 36];
} while (value /= 36);
return strdup(&buffer[offset]); // warning: this must be free-d by the user
}
static long unsigned int base36dec(const char *text) {
return strtoul(text, NULL, 36);
}
</source>
== Types of Table ==
== Types of Table ==
{| class="wikitable sortable"
{| class="wikitable sortable"

Revision as of 04:46, 15 September 2019

static char *base36enc(long unsigned int value) {
	char base36[36] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
	/* log(2**64) / log(36) = 12.38 => max 13 char + '\0' */
	char buffer[14];
	unsigned int offset = sizeof(buffer);

	buffer[--offset] = '\0';
	do {
		buffer[--offset] = base36[value % 36];
	} while (value /= 36);

	return strdup(&buffer[offset]); // warning: this must be free-d by the user
}

static long unsigned int base36dec(const char *text) {
	return strtoul(text, NULL, 36);
}

Types of Table

Order Code Types Purpose Tables Views
F A Audit Audit Tables M00TA00X00 ~ MZZTAZZX00 M00VA00X00 ~ MZZVAZZXZZ
D E Entries Entries Tables M00TE00X00 ~ MZZTEZZX00 M00VE00X00 ~ MZZVEZZXZZ
A I Identity Identity Tables M00TI00X00 ~ MZZTIZZX00 M00VI00X00 ~ MZZVIZZXZZ
E J Join Join Tables n - n M00TJ00X00 ~ MZZTJZZX00 M00VJ00X00 ~ MZZVJZZXZZ
G L Local Local Tables M00TL00X00 ~ MZZTLZZX00 M00VL00X00 ~ MZZVLZZXZZ
B M Metadata Metadata Tables M00TM00X00 ~ MZZTMZZX00 M00VM00X00 ~ MZZVMZZXZZ
C S Settings Settings Tables M00TS00X00 ~ MZZTSZZX00 M00VS00X00 ~ MZZVSZZXZZ
H V Versions Versions Tables M00TV00X00 ~ MZZTVZZX00 M00VV00X00 ~ MZZVVZZXZZ

Nomenclature

[M]{1}────────────────M ─┐
                         │
[0-9A-Z]{2}───────────00─┼─M00T─┐
                         │      │
[T|V]{1}──────────────T ─┘      │
                                │
[A|E|I|J|L|M|S|V]{1}──M ─┐      │
                         ├─M00 ─┼─M00TM00X00
[0-9A-Z]{2}───────────00─┘      │
                                │
[X]{1}────────────────X ─┐      │
                         ├─X00 ─┘
[0-9A-Z]{2}───────────00─┘

Audit Tables

[T]{1}──────T─┐
              ├─T00┐
[0-9A-Z]{2}─00┘    │
                   ├─T00AYZ
[A]{1}──────A─┐    │
              ├─AYZ┘
[0-9A-Z]{2}─YZ┘

Entries Tables

[T]{1}──────T─┐
              ├─T00┐
[0-9A-Z]{2}─00┘    │
                   ├─T00EYZ
[E]{1}──────E─┐    │
              ├─EYZ┘
[0-9A-Z]{2}─YZ┘

Identity Tables

[T]{1}──────T─┐
              ├─T00┐
[0-9A-Z]{2}─00┘    │
                   ├─T00IYZ
[I]{1}──────I─┐    │
              ├─IYZ┘
[0-9A-Z]{2}─YZ┘

Join Tables

[T]{1}──────T─┐
              ├─T00┐
[0-9A-Z]{2}─00┘    │
                   ├─T00JYZ
[J]{1}──────J─┐    │
              ├─JYZ┘
[0-9A-Z]{2}─YZ┘

Local Tables

[T]{1}──────T─┐
              ├─T00┐
[0-9A-Z]{2}─00┘    │
                   ├─T00LYZ
[L]{1}──────L─┐    │
              ├─JYZ┘
[0-9A-Z]{2}─YZ┘

Metadata Tables

[T]{1}──────T─┐
              ├─T00┐
[0-9A-Z]{2}─00┘    │
                   ├─T00MYZ
[M]{1}──────M─┐    │
              ├─MYZ┘
[0-9A-Z]{2}─YZ┘

Settings Tables

[T]{1}──────T─┐
              ├─T00┐
[0-9A-Z]{2}─00┘    │
                   ├─T00SYZ
[S]{1}──────S─┐    │
              ├─SYZ┘
[0-9A-Z]{2}─YZ┘

Versions Tables

[T]{1}──────T─┐
              ├─T00┐
[0-9A-Z]{2}─00┘    │
                   ├─T00VYZ
[V]{1}──────V─┐    │
              ├─VYZ┘
[0-9A-Z]{2}─YZ┘

References