Le 2014-05-25 06:48, Smita a écrit :
On Sat, May 24, 2014 at 11:53 PM, Smita <kumarismita62@gmail.com mailto:kumarismita62@gmail.com> wrote:
On Sat, May 24, 2014 at 10:25 PM, Marc Delisle <marc@infomarc.info <mailto:marc@infomarc.info>> wrote: Le 2014-05-24 12:16, Smita a écrit : > > > On Sat, May 24, 2014 at 9:24 PM, Marc Delisle <marc@infomarc.info <mailto:marc@infomarc.info> > <mailto:marc@infomarc.info <mailto:marc@infomarc.info>>> wrote: > > Le 2014-05-24 11:03, Smita a écrit : > > > > > > On Sat, May 24, 2014 at 7:49 PM, Marc Delisle <marc@infomarc.info <mailto:marc@infomarc.info> > <mailto:marc@infomarc.info <mailto:marc@infomarc.info>> > > <mailto:marc@infomarc.info <mailto:marc@infomarc.info> <mailto:marc@infomarc.info <mailto:marc@infomarc.info>>>> wrote: > > > > Hi Smita, > > I have a doubt, looking at the structure you chose for this table: > > db_name > > column_list > > > > This structure implies that, for any change, you have to load a > > potentially big row, decode it and encode it. Imagine that > there are > > hundreds or thousands of column definitions for this db. > > > > I suggest something like: > > > > db_name > > column_name > > column_attributes > > > > Yeah, agree. Thanks, It would be better to keep this. :-). > > I have a question: If we have "id interger(11) not null > auto_increment" > > already existing in central list, should we allow to add another > column > > "id integer(20) not null auto_increment" ? If we don't allow then > we can > > also keep structure like maybe: > > db_name > > column_name > > column_type > > column_collation > > column_isNull > > column_extra > > > > - Smita > > > > In a central list, there should be only one column named "id" (but this > choice of name would be problematic, of course; a better choice would be > "customer_id"). > > So We'll allow only unique column name. If same column name with > different definition tried to add we just show the column name (with > defination) already exist? Yes; eventually I guess that in your project, there will be a way to directly view the central list and change column definitions. Yeah, I need to make a page to manage central columns, there users can view complete list of columns and edit some if they want. > > Another example is "phone_number"; which is reused in the customer table > and in the salesperson table. You might want to always use CHAR(25) for > phone numbers. > > So it's a good idea to split the attributes into separate columns like > in your example. The default value could be there too. > > Ok, thanks. We'll keep default as well.
Hi Marc, I redesigned the database as discussed. I completed the adding columns part but I got stuck when came to deletion. I have a question. Let say I have two tables tbl1 and tbl2, both table has a common column name "phone_number". So If user selects both tables and asks to add unique columns to central list, then we are gonna add just one "phone_number" , let say we add the column/definition "phone_number" from tbl1. now let say user select tbl2 and ask to remove columns from central list. What should it do ? should it remove the column "phone_number" from central list or not ? as "phone_number" was added from tbl1. but "phone_number" exists in tbl2 as well.
- Smita
I say we should remove it from the central list. It's up to the user, to use the feature in a correct way.
Anyway, say the user added phone_number in tbl3 but never used any central column option on tbl3. phpMyAdmin won't know that this phone_number in tbl3 possibly has a different definition, unless there is an option to manually validate all the tables against the central list.