Hi everyone,

 

I have already raised this question twice but had no satisfactory answer, so I 
am hereby trying again:

 

Generally I think it is a great idea to specify the Nullable, NotNull, 
AutoGenerated capabilities of a column with an enum rather than boolean as 
before.

The main advantage is the readability of the data model definition.

Currently we're using an enumeration called DataMode simply because I could not 
think of a better name at the time.

But I don't think the name is good. There must be something better.

This is what it looks like at the moment:

 

// Example for "DataMode"

DEPARTMENT_ID   = addColumn("DEPARTMENT_ID",    DataType.AUTOINC,       0, 
DataMode.AutoGenerated, "DEP_ID_SEQUENCE");

NAME            = addColumn("NAME",             DataType.TEXT,         80, 
DataMode.NotNull);

HEAD            = addColumn("HEAD",             DataType.TEXT,         80, 
DataMode.Nullable);

BUSINESS_UNIT   = addColumn("BUSINESS_UNIT",    DataType.TEXT,          4, 
DataMode.NotNull, "ITTK");

UPDATE_TIMESTAMP= addColumn("UPDATE_TIMESTAMP", DataType.DATETIME,      0, 
DataMode.AutoGenerated);

 

Since the enum reflect the update capabilities of a column how about UDC (short 
for update capabilities):

// Example for "Udc"

DEPARTMENT_ID   = addColumn("DEPARTMENT_ID",    DataType.AUTOINC,       0, 
UDC.AutoGenerated, "DEP_ID_SEQUENCE");

NAME            = addColumn("NAME",             DataType.TEXT,         80, 
UDC.NotNull);

HEAD            = addColumn("HEAD",             DataType.TEXT,         80, 
UDC.Nullable);

BUSINESS_UNIT   = addColumn("BUSINESS_UNIT",    DataType.TEXT,          4, 
UDC.NotNull, "ITTK");

UPDATE_TIMESTAMP= addColumn("UPDATE_TIMESTAMP", DataType.DATETIME,      0, 
UDC.AutoGenerated);

 

What about Caps

// Example for "Caps"

DEPARTMENT_ID   = addColumn("DEPARTMENT_ID",    DataType.AUTOINC,       0, 
Caps.AutoGenerated, "DEP_ID_SEQUENCE");

NAME            = addColumn("NAME",             DataType.TEXT,         80, 
Caps.NotNull);

HEAD            = addColumn("HEAD",             DataType.TEXT,         80, 
Caps.Nullable);

BUSINESS_UNIT   = addColumn("BUSINESS_UNIT",    DataType.TEXT,          4, 
Caps.NotNull, "ITTK");

UPDATE_TIMESTAMP= addColumn("UPDATE_TIMESTAMP", DataType.DATETIME,      0, 
Caps.AutoGenerated);

 

Or Mod (short for Modifier)?

// Example for Mod

DEPARTMENT_ID   = addColumn("DEPARTMENT_ID",    DataType.AUTOINC,       0, 
Mod.AutoGenerated, "DEP_ID_SEQUENCE");

NAME            = addColumn("NAME",             DataType.TEXT,         80, 
Mod.NotNull);

HEAD            = addColumn("HEAD",             DataType.TEXT,         80, 
Mod.Nullable);

BUSINESS_UNIT   = addColumn("BUSINESS_UNIT",    DataType.TEXT,          4, 
Mod.NotNull, "ITTK");

UPDATE_TIMESTAMP= addColumn("UPDATE_TIMESTAMP", DataType.DATETIME,      0, 
Mod.AutoGenerated);

 

Any other ideas are also welcome.

 

BTW: Finding a good name for a class, function or variable is the most 
challenging part of programming (my phrase)

 

Rainer

 

 

Reply via email to