Textual database designer (Basil 2.0)
Ecstatic Coder
ecstatic.coder at gmail.com
Sat Jun 16 20:34:39 UTC 2018
For those interested, Basil, my textual database designer, can
now export database schemas in SQL, CQL, Go and Crystal format,
and their fake data in SQL and CQL format.
I've slightly changed the syntax so that the table columns can
use any combination of scalar types, foreign keys, tuples, maps,
lists and sets.
You can download it here :
https://github.com/senselogic/BASIL
Here are two sample scripts illustrating the new syntax :
BLOG | count 5
SECTION
Id : UINT64 | key, unique, incremented
Number : UINT64
Name : STRING | capacity 45
Text : STRING
Image : STRING | capacity 45
ImageIndex : UINT64 | !stored
USER
Id : UINT64 | key, unique, incremented
FirstName : STRING | capacity 45
LastName : STRING | capacity 45
Email : STRING | capacity 45
Pseudonym : STRING | capacity 45
Password : STRING | capacity 45
Phone : STRING | capacity 45
Street : STRING
City : STRING | capacity 45
Code : STRING | capacity 45
Region : STRING | capacity 45
Country : STRING | capacity 45
Company : STRING | capacity 45
ItIsAdministrator : BOOL
ARTICLE | count 15
Id : UINT64 | key, unique, incremented
SectionId : SECTION.Id | partitioned
UserId : USER.Id | clustered
Title : STRING
Text : STRING
Image : STRING | capacity 45
Date : DATE
Section : POINTER[ SECTION ] | !stored
User : POINTER[ USER ] | !stored
ImageIndex : UINT64 | !stored
COMMENT | count 30
Id : UINT64 | key, unique, incremented
ArticleId : ARTICLE.Id | indexed
UserId : USER.Id | indexed
Text : STRING | english 2 4 5 7
DateTime : DATETIME
Article : POINTER[ ARTICLE ] | !stored
User : POINTER[ USER ] | !stored
SUBSCRIBER
Id : UINT64 | key, unique, incremented
Name : STRING | capacity 45
Email : STRING | capacity 45
TEST | count 10
SIMPLE
Uuid : UUID | key, unique
Bool : BOOL | partitioned
Int8 : INT8 | clustered
Uint8 : UINT8 | indexed
Int16 : INT16
Uint16 : UINT16
Int32 : INT32
Uint32 : UINT32
Int64 : INT64
Uint64 : UINT64
Float32 : FLOAT32
Float64 : FLOAT64
String : STRING
Date : DATE | unique
DateTime : DATETIME
Blob : BLOB
COMPOUND
Id : INT32 | key, unique, incremented
Location : Country : STRING | uppercase
Name : TUPLE[ FirstName : STRING, LastName : STRING ] |
unique
NameSet : SET[ TUPLE[ FirstName : STRING, LastName :
STRING ] ] | count 2
CompanyMap : MAP[ Phone : STRING, Company : STRING ] |
count 2
EmailSet : SET[ Email : STRING ] | count 2
PhoneList : LIST[ Phone : STRING ] | count 2
SimpleDate : SIMPLE.Date
SimpleDateMap : MAP[ COMPOUND.Name, SIMPLE.Date ] | count
2
SimpleDateSet : SET[ SIMPLE.Date ] | count 2
SimpleDateList : LIST[ SIMPLE.Date ] | count 1 3
NameSetMap : MAP[ SIMPLE.Date, COMPOUND.NameSet ] | count
2
SimplePointerArray : ARRAY[ POINTER[ SIMPLE ] ] | !stored
More information about the Digitalmars-d-announce
mailing list