[Phpmyadmin-devel] Regarding RFE #908

Marc Delisle marc at infomarc.info
Tue Jul 8 23:04:35 CEST 2014


Le 2014-07-08 14:35, Ashutosh Dhundhara a écrit :
> 
> 
> On Tuesday, July 8, 2014, Marc Delisle <marc at infomarc.info
> <mailto:marc at infomarc.info>> wrote:
> 
>     Le 2014-07-08 13:33, Ashutosh Dhundhara a écrit :
>     > On Tue, Jul 8, 2014 at 9:04 PM, Marc Delisle <marc at infomarc.info
>     > <mailto:marc at infomarc.info>> wrote:
>     >
>     >     Le 2014-07-08 10:48, Ashutosh Dhundhara a écrit :
>     >     > On Tue, Jul 8, 2014 at 6:01 PM, Marc Delisle <marc at infomarc.info
>     >     <mailto:marc at infomarc.info>
>     >     > <mailto:marc at infomarc.info <mailto:marc at infomarc.info>>> wrote:
>     >     >
>     >     >     Le 2014-07-08 07:52, Ashutosh Dhundhara a écrit :
>     >     >     > Hi,
>     >     >     >
>     >     >     > I have got some ideas regarding RFE #908
>     >     >     >
>     <http://sourceforge.net/p/phpmyadmin/feature-requests/908/>
>     >     >     (Improvements for
>     >     >     > the table editor (index creation)).
>     >     >     >
>     >     >     > *_1. Making Column section on 'Add Index' dialog
>     sort-able._*
>     >     >     > With this user will be able to change the order of columns
>     >     in case of
>     >     >     > composite keys.
>     >     >     >
>     >     >     > *_2. Displaying a dialog box when multiple columns for
>     same
>     >     type of
>     >     >     > index are selected on 'Create table' page._*
>     >     >     > This dialog will have two options: 'Create new' and
>     'Create
>     >     >     composite'.
>     >     >     > - 'Create new' will allow user to create a new single
>     column
>     >     key.
>     >     >     (Table
>     >     >     > can have only one Primary key)
>     >     >     > - 'Create composite' will allow user to add that
>     column to a
>     >     existing
>     >     >     > key (to be created) and sort the order of columns.
>     >     >     >
>     >     >     > Will this implement this feature request?
>     >     >
>     >     >     Hi Ashutosh,
>     >     >     first, the feature request says "If I add two indexed
>     fields to a
>     >     >     table"; remember that this action can be done on initial
>     table
>     >     creation,
>     >     >     and when adding columns on an existing table.
>     >     >
>     >     >
>     >     > Thanks for pointing this out. I missed that 'adding column on an
>     >     > existing table' part.
>     >     >
>     >     >
>     >     >
>     >     >     About your suggestion #1, are you talking about the dialog
>     >     that appears
>     >     >     after choosing table Structure > Indexes > Create an
>     index on
>     >     x columns
>     >     >     ? If so, the user can already choose the columns in the
>     >     correct order;
>     >     >     so you want to help the user change his mind when
>     creating the
>     >     index?
>     >     >
>     >     >     I am not against, but this would be more useful when
>     _editing_
>     >     an index.
>     >     >     Or it can be done in both situations.
>     >     >
>     >     >
>     >     >
>     >     > Yeah, this can be done with the existing system. I failed to
>     see that.
>     >
>     >     I mean, calling the existing index editor (improved with the
>     sortable
>     >     columns), when adding the columns with an index choice selected.
>     >
>     >
>     > But the user can still change the order of columns using the select
>     > lists on the 'Edit Index' dialog.
> 
>     Correct, or by dragging them (this is what you meant by "sortable",
>     right?)
> 
> 
> Yeah, I meant by dragging with the use of existing jQuery UI Sortable
> plugin.
>  
> 
> 
>     >
>     >
>     >     >
>     >     >
>     >     >     About your suggestion #2, if the user chose PRIMARY in the
>     >     selector for
>     >     >     two columns, it makes no sense to show this additional
>     dialog
>     >     (unless
>     >     >     you want him to confirm that the PRIMARY will be composite)
>     >     but it makes
>     >     >     sense to allow column sorting.
>     >     >
>     >     >
>     >     > Yeah Marc, I won't show this dialog for PRIMARY key.
>     >
>     >     But if the user wants to create a composite primary key, I
>     expect that
>     >     you will show the dialog for choosing the index order.
>     >
>     >
>     > Yeah, I will do that.
>     >
>     >
>     >     >
>     >     >
>     >     >
>     >     >     If he chose UNIQUE or INDEX, instead of "Create new" I would
>     >     say "Create
>     >     >     single-column indexes". The other message could be "Create a
>     >     composite
>     >     >     index" but do you suggest that this choice opens the
>     >     already-existing
>     >     >     Edit index dialog, which you would prefill with the chosen
>     >     column names?
>     >     >
>     >     >     As per the feature request, the default choice should be
>     to create
>     >     >     single-column indexes.
>     >     >
>     >     >
>     >     > I think you are getting it wrong. This part is for 'Create
>     table' page
>     >     > and 'add column to existing table' page. Lets say I am
>     creating a new
>     >     > table. I have added a column `col1` and selected UNIQUE
>     index for it
>     >     > (before clicking 'Go'). I won't see any dialog yet. Now lets
>     I have
>     >     > added another column `col2` and selected UNIQUE index for
>     this as
>     >     well.
>     >     > Now I will get a dialog asking for "Create single-column
>     indexes" or
>     >     > "Create a composite index". If I will choose "Create a composite
>     >     index",
>     >     > then I will get a list of all temporary UNIQUE indexes and I
>     can merge
>     >     > that column into any of these indexes.
>     >     > For PRIMARY index, we will need only the composite-index part.
>     >
>     >     But the create table form can still change before submission. What
>     >     happens if the user goes back to col1 and unselects UNIQUE?
>     >
>     >
>     > We can remove that column from the corresponding indexes and add it a
>     > new as before.
> 
>     Yes, but the logic will be more complex. Maybe it would be better to
>     show a series of dialogs at the end when user submits the form?
> 
> 
> Can you please elaborate a little this series of dialogs part?
> I am going to temporarily hold this keys and their order information in
> JS variables. So nothing is committed yet. Its just a simple
> manipulation of JS variables only.

Sounds good to do it your way.

>  
> 
>     >
>     >
>     >
>     >     >
>     >     > I think this will also handle the issue highlighted by you
>     in the
>     >     next mail?
>     >
>     >     Not sure, it depends on the moment when the user uses the
>     index selector
>     >     and for which column.
>     >
>     >
>     > Lets user first selects INDEX for col a (no dialog box yet); then
>     > selects INDEX for col b too and he gets a dialog box. Then he adds
>     col b
>     > with col a's index by choosing "Create a composite index" option. And
>     > finally he selects UNIQUE for col c and again he gets a dialog
>     box. Then
>     > he chooses "Create single-column indexes" option. In this way he
>     can get
>     > composite-index for a + b and single index on c. Is this the case you
>     > are referring?
> 
>     This case would work, but how can you detect if the user wants to create
>     a composite on cols A + C and another composite on cols B + D?
> 
> 
> The user will get a list all temporarily created indexes when he will
> choose "Create a composite index" option. For instance, in this case
> lets say the user has newly added columns A,B,C and D and he has already
> created composite index A+C and single-column index B. Now when he will
> choose for composite INDEX for D, he will be asked:
> 
> Add this column to which of the following indexes:
> <radio_button>  A+C
> <radio_button>  B
> 
> After choosing the combination, he will choose the order of the columns.
> And as I have mentioned above, I will be holding this information in JS
> variables. Nothing is committed yet.

Sounds good.


-- 
Marc Delisle | phpMyAdmin




More information about the Developers mailing list