Le 2014-07-08 13:33, Ashutosh Dhundhara a écrit :
On Tue, Jul 8, 2014 at 9:04 PM, Marc Delisle <marc@infomarc.info mailto:marc@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@infomarc.info <mailto:marc@infomarc.info> > <mailto:marc@infomarc.info <mailto:marc@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?)
> > > 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?
> > 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?