Convention for Database Tables: Difference between revisions
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┘