Open milapatel18 opened 6 years ago
After successful loading of all columns, developer will have to verify details for PK,FK,NOTNULL, content sizes and update details for title, description, images icons, FK view (Tags box, Grid box, DropDown, List Box etc operations), columns to display in dynamic search result grid, also to keep active same in dynamic search form option. Developer will be managing which not null attributes to ask and which not like last update, creation_time.... this should not to be asked, or it should be just visible inactively.
There will be an option for modules like Product Catalog, User Management,. Developer will assign root table to each module. : so developer will create a module like Product Catalog Module, and then root table will be assigned to this module. Developer can manage icon image of module and title image also of the module. Developer can assign action-view to module to open table in inline view or prompt view. [This will be used to develop further View based on specific requirement. For, each module there will be only one specified div in application so it will be helpful to avoid div naming structure further.]. Each module will have their own template : e.g. For Root module which contains a child module will have a ListAllSubModule Template will display all sub-modules with title,desc and image in two/3/4 column grid, and all leaf module will have SimpleCRUDTemplate with searchOptionForm, searchResultList,dataEditMode Template, <- This is just a basic depiction for development, real time may be similar or different.
Future Implementation - Developer will also create some tabs with table injection of dependency. e.g. for product table, stock column is not there and not any stock row is referenced in product table. So user will add Manage Stock tab to product table and then inject stock table for that product to list stock details, this will be tricky but should be there.
After completion of all developer will initiate an application for the database [Technical : This application will load all master data details in to static map element which is used to make further view related operations] Menu will be shown on left side, this menu will be generated from modules table along with specified images and other metadata.
Developer's work at core part will be very simple...
[Scenario 1 : It may be possible that developer has connected same database - master table comes from same database]. <= For this it will require always some basic tables availability in database with sample data.
[Scenario 2 : It may be possible that developer has connected multiple database - master table comes from application specific database]. <= This is the best scenario that will work mostly.
Manipulate tables to add in application or not. e.g. Admin user will not have to access core tables of this application, so just mark them as inactive to prevent in further operations on it.
Developer will be able to manage title, desc, primary image for this table.
[Scenario Not to consider : Table Name Changed, consider Table names are never changed]
[Scenario to consider : If loading tables first time no need to worry all tables will be loaded and status will be B. But while updating existing list of databases, Iterate all new tables, first mark all tables in db_tables status as A, then for each new tables check if exist then mark to B, at the end all A will be considered to removed from database thats fine. ] [here, db_id and table_name is composite UNIQUE key][There should be a third table which keeps history of all tables loading and updation and deletion of some processes on tables only]
Then developer will have to initiate database, in this initiation process all the columns of B status -> db_tables will be loaded in master_table. KEEP OPTION FOR INITIATING ONLY SELECTED TABLES USEFUL WHEN UPDATING FOR NEW ADDED TABLE ONLY.
[Scenario Not to consider : Column name changed in table, consider Column names are never changed, else it should be manual]
[Scenario to consider : If loading columns first time no need to worry all tables will be loaded and status will be B. But while updating existing list of columns, Iterate all new columns, first mark all columns in master_table status as A, then for each new columns check if exist then mark to B, at the end all A will be considered to removed from tables that's fine. If not exist then add it ad mark as C to identify new column is added and this should be manipulated. << This is for general description.
If column exist then update only basic required details to db with mark of updation in details if changed then and then only. When this process starts all column of table in master table should be marked with REMOVED status, if column is not changed with its attribute then is should update status for UNCHANGED, if changed for attributes then update status to CHANGED, create appropriate trigger for this if possible. If column name is changed then also it will be updated in master table as NEWADDED but old will have REMOVED status so user can identify that this one is deleted. If column is newly added in database the mark as NEWADDED.]
<< SOME HOW THIS SHOULD BE MANAGED WITH TRANSACTION FUNCTIONALITY OF JDBC & MYSQL = First Load all Data in MAP and then update, much batter."