digitalmars.D.announce - Textual database designer (Basil 2.0)
- Ecstatic Coder (92/92) Jun 16 2018 For those interested, Basil, my textual database designer, can
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
Jun 16 2018