[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