Meta-Data Database AccessExample

2. Example

'
users
' =>
{

'
fields
' =>
    [
        {

'
name
' =>
"
User_ID
",

'
type
' =>
"
int32
",

'
input
' => {
'
type
' =>
"
auto
",
'
method
' =>
"
get-new-id
",
"
primary_key
" =>
1, },

'
display
' => {
'
type
' =>
"
hidden
" },
        },
        {

'
name
' =>
'
Name
',

'
type
' =>
"
varchar
",

'
type_params
' => {
'
len
' =>
255 },
        },
        {

'
name
' =>
'
Username
',

'
type
' =>
"
varchar
",

'
type_params
' => {
'
len
' =>
30 },

'
input_params
' =>
            [
                {

'
type
' =>
'
unique
',
                },
                {

'
type
' =>
"
not_match
",

'
regex
' =>
'
^new$
',

'
comment
' =>
"
new is a reserved word and cannot be assigned as a username
",
                },
                {

'
type
' =>
'
match
',

'
regex
' =>
'
^[a-zA-Z]\w*$
' ,

'
comment
' =>
"
The username must start with a letter and extend with letters, digits and underscores
",
                },

           ],

'
display
' => {
'
type
' =>
"
constant
" },
        },
        {

'
name
' =>
"
Super_Admin
",

'
title
' =>
"
Super Admin Flag
",

'
type
' =>
"
bool
",

'
input
' => {
'
type
' =>
"
auto
",
'
method
' =>
"
by-value
",
'
value
' =>
0}
        },
        {

'
name
' =>
"
Password
",

'
type
' =>
"
varchar
",

'
type_params
' => {
'
len
' =>
255 },

'
display
' => {
'
type
' =>
"
password
" },
        },
        {

'
name
' =>
"
Email
",

'
title
' =>
"
E-Mail
",

'
type
' =>
"
email
",

'
type_params
' => {
'
len
' =>
255 },
        },
    ],

'
derived-tables
' => [
"
permissions
" ],

'
triggers
' =>
    {

'
add
' =>
        [

"
INSERT INTO permissions (User_ID, Club_ID, Seminars, Subjects) SELECT 
\$
F{User_ID}, clubs.Club_ID, 0, 0 FROM clubs
",
        ],

'
delete
' =>
        [

"
DELETE FROM permissions WHERE User_ID = 
\$
F{User_ID}
",
        ],
    },
}

Written by Shlomi Fish