|
|
|
Это PowerDesigner глючит или меня?
|
|||
|---|---|---|---|
|
#18+
Создаю таблицу. Там указываю поле users как PK. Это поле по совместительству у меня является внешним ключем. Так этот PowerDesigner делает два идентичных индекса, один, указывая primary key по моему полю, другой, типа для внешнего ключа и по этому же полю. Разве нельзя использовать один индекс? Вот примерный код PowerDesigner-а: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. Так вот почему нельяз использовать PK, зачем делать еще user_id_FK ?? Причем я думал, может ему не нравится, что у меня PK по 3м полям, делал по одному "primary key (user_id)" не помогло. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2005, 12:08:05 |
|
||
|
Это PowerDesigner глючит или меня?
|
|||
|---|---|---|---|
|
#18+
тебе ведь нужны два индекса. Вот два и создаётся. foreign key ведь хлеба не ест, вроде. ------------------ - А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2005, 13:59:13 |
|
||
|
Это PowerDesigner глючит или меня?
|
|||
|---|---|---|---|
|
#18+
Зачем мне два _одинаковых_ индекса? У меня записей в этих таблицах ого-го. В плане не ест? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2005, 14:05:07 |
|
||
|
Это PowerDesigner глючит или меня?
|
|||
|---|---|---|---|
|
#18+
в том плане, что это чистая формальность. На первичный ключ создаётся бинарное дерево для ускорения поиска по этому первичному ключу, внешний ключ в такой байде не нуждается, т.к. логика там такая: "проверить, содержится ли такое значение в первичном ключе, на который ссылается этот вторичный ключ". ------------------ - А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2005, 14:12:42 |
|
||
|
Это PowerDesigner глючит или меня?
|
|||
|---|---|---|---|
|
#18+
Т.е. так сказать физически индекс не строится? А как тогда организовано слежение за целосностью? Т.е. если я хочу удалить родителя пока есть дочерние записи... он че без индекса их искать будет? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2005, 14:55:25 |
|
||
|
Это PowerDesigner глючит или меня?
|
|||
|---|---|---|---|
|
#18+
Кстати, ну так не нуждается и флаг ему, но вот это зачем Код: plaintext 1. 2. 3. 4. Это что формальность? Это ведь обычное построение индекса. Индекса, который у меня уже есть, как ПК. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.11.2005, 16:01:38 |
|
||
|
Это PowerDesigner глючит или меня?
|
|||
|---|---|---|---|
|
#18+
DivogТ.е. если я хочу удалить родителя пока есть дочерние записи... он че без индекса их искать будет?внешний ключ обязан ссылаться на первичный , вот по тому первичному и будет вестись (быстрый) поиск. В мане про ключи подробно не написано? Divogвот это зачем Код: plaintext 1. 2. 3. 4. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 11:05:25 |
|
||
|
Это PowerDesigner глючит или меня?
|
|||
|---|---|---|---|
|
#18+
авторэта запись вообще смысла не имеет (вроде как), т.к. не понятно, откуда брать поле user_id. Ок.. вот так (PowerDesigner просто думает что будет брать из текущей таблицы. глючит короче его:) ) Код: plaintext 1. 2. 3. Суть в том.. что здесь создается индекс.. вопрос.. нах? авторвнешний ключ обязан ссылаться на первичный, вот по тому первичному и будет вестись (быстрый) поиск. В мане про ключи подробно не написано? Первичный это как бы родитель... и я _его_ удаляю.. следовательно должен пройти поиск по дочерним данным.. на предмет а нету ли там дочерних записей... Причем тут ПК (хотя это возможно реализокано какими-то внутренними механизмами, не знаю). Основной вопрос... нужен ли мне вот тот индекс? Я просто не могу понять... или я чего-то недопонимаю и лучше поверить PD или его разработчики, мягко говоря... странные люди... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 11:46:08 |
|
||
|
Это PowerDesigner глючит или меня?
|
|||
|---|---|---|---|
|
#18+
DivogОк.. вот так (PowerDesigner просто думает что будет брать из текущей таблицы. глючит короче его:) ) Код: plaintext 1. 2. 3. DivogПервичный это как бы родитель... и я _его_ удаляю.. следовательно должен пройти поиск по дочерним данным.. на предмет а нету ли там дочерних записей... Причем тут ПК (хотя это возможно реализокано какими-то внутренними механизмами, не знаю).четай чтиво или мануал. DivogОсновной вопрос... нужен ли мне вот тот индекс?не знаю. Может, ты по нему где-нибудь поиск делаешь. ------------------ - А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 13:30:06 |
|
||
|
Это PowerDesigner глючит или меня?
|
|||
|---|---|---|---|
|
#18+
авторне знаю. Может, ты по нему где-нибудь поиск делаешь. Блин, зри первый постинг. Не делаю я по нему поиск.. этот индекс ПД "создает" тогда когда я добавляю внешний ключ. Я предполагал, что он создает его для того чтобы поиск по дитям шел быстрее, но тогда неясно нафиг он его создает, если по этому полю уже есть индекс (ПК). авторэто ты сам накропал или пд так пишет? ПД пишет Код: plaintext 1. 2. 3. Код: plaintext 1. 2. 3. авторчетай чтиво или мануал. ты походу меня не понял. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 13:40:50 |
|
||
|
Это PowerDesigner глючит или меня?
|
|||
|---|---|---|---|
|
#18+
т.е вообще с ошибкой (для 4.1). вот и я про то же. Логично предположить, что он имеет ввиду может, он ещё что-нибудь имеет в виду кроме этого? :) ------------------ - А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 13:45:48 |
|
||
|
Это PowerDesigner глючит или меня?
|
|||
|---|---|---|---|
|
#18+
авторможет, он ещё что-нибудь имеет в виду кроме этого? :) Не знаю что он еще умеет иметь ввиду, но тут он именно это и имеет :) Поскольку больше ни в одной таблице нет такого поля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 14:35:05 |
|
||
|
Это PowerDesigner глючит или меня?
|
|||
|---|---|---|---|
|
#18+
да ну?? alter table user_state add constraint FK_user_id foreign key (user_id) references user_data (user_id) on delete restrict on update restrict; ------------------ - А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 15:01:04 |
|
||
|
Это PowerDesigner глючит или меня?
|
|||
|---|---|---|---|
|
#18+
может, он создаёт ключик для user_data, только забывает его туда вставить? :) ------------------ - А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 15:05:41 |
|
||
|
Это PowerDesigner глючит или меня?
|
|||
|---|---|---|---|
|
#18+
а вот зачем нужно было читать мануал: мануалInnoDB rejects any INSERT or UPDATE operation that attempts to create a foreign key value in a child table without a matching candidate key value in the parent table.то есть индекс нужен... почему не юзается первичный ключ - хз. ------------------ - А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 15:13:34 |
|
||
|
Это PowerDesigner глючит или меня?
|
|||
|---|---|---|---|
|
#18+
авторда ну?? alter table user_state add constraint FK_user_id foreign key (user_id) references user_data (user_id) on delete restrict on update restrict; Ну шо я прям с одним набором таблиц работаю? Специально переименовывал поочередно поля, проверял. Подставляет он туда имя поля текущей таблицы, а не какой-либо иной. авторможет, он создаёт ключик для user_data, только забывает его туда вставить Не-а. В user_data есть ПК, на который и ссылается ФК из текущей таблицы. Индекс он делает именно для текущей таблицы. автор maXmoа вот зачем нужно было читать мануал: [quot мануал]InnoDB rejects any INSERT or UPDATE operation that attempts to create a foreign key value in a child table without a matching candidate key value in the parent table. И шо? Речь шла не об этом случае. Здесь, да, нужен "быстрый поиск" по родительской таблице. Но я говорил о случае УДАЛЕНИЯ данных из _родительской_. В этом случае сначала должна пройти проверка а нет ли чего в дочерней (и вот тут уже нужен "быстрый поиск" по дочерней таблице). Я ж говорю, ты меня не понял :) авторто есть индекс нужен... почему не юзается первичный ключ - хз. как ты сделал такой вывод? Хотя я сам к этому слоняюсь, но я не понял откуда такой вывод из приведенной цитаты мануала. Там речь о том что недопустимы значения, которых нет в родительской таблице. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 15:32:54 |
|
||
|
Это PowerDesigner глючит или меня?
|
|||
|---|---|---|---|
|
#18+
DivogИ шо? Речь шла не об этом случае. Здесь, да, нужен "быстрый поиск" по родительской таблице.мусклю по барабану, для чего ты хочешь юзать внешний ключ, оба индекса должны быть созданы обязательно, иначе In older versions, the indexes must be created explicitly or the creation of foreign key constraints fails . Если напишешь лапками и не укажешь индекс, то Starting with MySQL 4.1.2, the index on the foreign key is created automatically - не можешь быть уверен, что индекс не создастся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 16:02:05 |
|
||
|
Это PowerDesigner глючит или меня?
|
|||
|---|---|---|---|
|
#18+
хотя все индексы должны бы выводиться в SHOW CREATE TABLE... ------------------ - А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 16:07:50 |
|
||
|
Это PowerDesigner глючит или меня?
|
|||
|---|---|---|---|
|
#18+
автороба индекса должны быть созданы обязательно речь была не о том, хотя то уже не важно. Я где-то так я и предполагал (что нужны оба индека и не "формальных", а реальных, о чем я вначале и говорил)... собсно тогда возвращаемся к первоначальному вопросу... нах там второй индекс? :) Я так понял это ПД тупит, что не использует ПК, а создает второй такой же индекс? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 16:31:59 |
|
||
|
Это PowerDesigner глючит или меня?
|
|||
|---|---|---|---|
|
#18+
тогда если по уму, то второй индекс не нужен... хехе, но мускуль об этом тоже может не знать :) хотя... мануалIn the referencing table, there must be an index where the foreign key columns are listed as the first columns in the same order. ------------------ - А как в Интеpнете pаботать? - Сначала нужно узнать, что вам нужно rtfm ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.11.2005, 16:39:08 |
|
||
|
|

start [/forum/topic.php?fid=47&msg=33392663&tid=1853418]: |
0ms |
get settings: |
8ms |
get forum list: |
19ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
203ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
52ms |
get tp. blocked users: |
1ms |
| others: | 206ms |
| total: | 506ms |

| 0 / 0 |
