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?
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.
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.
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.
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.
As I told to Smita for her project, it's better to reuse existing interfaces, in this case the existing index editor.
Le 2014-07-08 08:31, Marc Delisle a écrit :
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.
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.
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.
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.
As I told to Smita for her project, it's better to reuse existing interfaces, in this case the existing index editor.
Another issue: let's say the user is adding columns a, b and c, and wants to create a composite index on a + b and a single-index on c. User chose "INDEX" for all columns. Will your interface handle this case?
On Tue, Jul 8, 2014 at 6:01 PM, Marc Delisle 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.
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.
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.
I think this will also handle the issue highlighted by you in the next mail?
As I told to Smita for her project, it's better to reuse existing interfaces, in this case the existing index editor.
I believe that the existing index editor works for existing tables (ALTER TABLE statement) but in this case we need to modify the CREATE TABLE query. So no interaction required with the server yet. Still I will try to reuse it, if possible.
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> 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.
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.
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?
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.
As I told to Smita for her project, it's better to reuse existing interfaces, in this case the existing index editor.
I believe that the existing index editor works for existing tables (ALTER TABLE statement) but in this case we need to modify the CREATE TABLE query. So no interaction required with the server yet. Still I will try to reuse it, if possible.
On Tue, Jul 8, 2014 at 9:04 PM, Marc Delisle 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> 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.
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.
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?
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?
On Tuesday, July 8, 2014, Marc Delisle marc@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@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?)
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.
> > 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.
-- Ashutosh Dhundhara
Le 2014-07-08 14:35, Ashutosh Dhundhara a écrit :
On Tuesday, July 8, 2014, Marc Delisle <marc@infomarc.info mailto:marc@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@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?)
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.