|
|
|
Организация ключей
|
|||
|---|---|---|---|
|
#18+
Привет всем спецам! Подскажите, пожалуйста, как решить такую проблему: имеется несколько справочных таблиц, они связаны с одной основной таблицей. Как организовать первичный ключь справочных таблиц, что бы в основной таблице они не совпали? Я видил ключи такого рода as12fde. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 05:27 |
|
||
|
Организация ключей
|
|||
|---|---|---|---|
|
#18+
romanich Как организовать первичный ключь справочных таблиц, что бы в основной таблице они не совпали? сразу встречный вопрос - а зачем надо чтобы они не совпали? есть подозрение что на несколько разных справочников ссылается одно поле - если это так, то надо сильно подумать на правильностью такого решения :) romanichЯ видил ключи такого рода as12fde. вообще подходов как минимум два: 1. Сделать чтобы ключи в все справочники заносились из одного источника (generator, sequence, etc.) 2. GUID ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 05:48 |
|
||
|
Организация ключей
|
|||
|---|---|---|---|
|
#18+
Извините, наверное неясно выразился, поясню: есть справочные таблицы - двигателя, выключатели, трансформаторы и т.п.. И есть основная таблица, содержит в себе список материалов для ремонта этого оборудования. Ключи в справочных таблицах у меня автоинкрементируемые поля и соответственно могут совпасть с другими ключами из др. таблиц. вообще подходов как минимум два: 1. Сделать чтобы ключи в все справочники заносились из одного источника (generator, sequence, etc.) 2. GUID А можно подробнее про генерацию? вопрос проиллюстрирован ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 08:41 |
|
||
|
Организация ключей
|
|||
|---|---|---|---|
|
#18+
"засунь" все справочные в одну... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 11:00 |
|
||
|
Организация ключей
|
|||
|---|---|---|---|
|
#18+
Да, выбран неправильный подход и под него пытается найтись правильное решение. Все справочники нужно объеденить в одну таблицу, а для различия добавить поле обозначающее тип справочника. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 11:17 |
|
||
|
Организация ключей
|
|||
|---|---|---|---|
|
#18+
romanich В общем-то правильный ответ прозвучал - нарисованная Вами структура как правило неудачна. Генерация непересекающихся значений не представляет никакой проблемы - запитать таблицы от одного sequence, и всего делов-то. Но у меня, например, сразу возникает вопрос, ради чего гробить целостность. В Oracle возможно еще одно неправильное решение - хранить в ссылающейся таблице не id, а rowid. И одно теоретически правильное, но (afaik) очень редко используемое - хранить object reference. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 11:17 |
|
||
|
Организация ключей
|
|||
|---|---|---|---|
|
#18+
наверное спрашивающий не зря разделил справочники на несколько таблиц. наверное были причины? (это вопрос) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 11:19 |
|
||
|
Организация ключей
|
|||
|---|---|---|---|
|
#18+
gardenman прав, таблицы разделены из-за того что каждое обордование имеет один тип, напр. двигатель ДВ-100, а таких двигателей 100 шт, различаются они инв. номерами, на рис. было бы еще по одной таблице, хранящих специфику двигателей, выключателей и т.д. Т.е. здесь вариант решения только по генерации ключей. Как это сделать, подскажите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 12:37 |
|
||
|
Организация ключей
|
|||
|---|---|---|---|
|
#18+
Ничего лучше чем SEQUENCE для этой цели не было придумано... А у вас база какая? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 12:42 |
|
||
|
Организация ключей
|
|||
|---|---|---|---|
|
#18+
база на ms sql 2000. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 12:44 |
|
||
|
Организация ключей
|
|||
|---|---|---|---|
|
#18+
Вот человек, сначала разложит грабли, а затем вырабатывает методу их обхода, вместо того, чтобы держать грабли в специально отведенном месте :) Не вижу причин (кроме упрямства автора), мешающих объединить эти справочники с их типизацией по группам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 14:20 |
|
||
|
Организация ключей
|
|||
|---|---|---|---|
|
#18+
2Slider_spb Извините, но хранить такую инфу в одной таблице, по моему, не практично: Двигатели Название обороты напряжение мощьность дв-100 1000 380 500 выключатели название секций напряжение вк-1 2 380 трансформаторы название вх. напр. вых. напр. тр-380 10000 380 ПРичем у каждого 100-ни инвентарных номеров. Я не смогу просто это впихнуть в одну таблицу, большая избыточность получается и пустые поля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.01.2006, 14:59 |
|
||
|
Организация ключей
|
|||
|---|---|---|---|
|
#18+
Э, как все запущено, у вас и таблички не нормализованы… Вас никогда не учили разделять сущности и данные к ним? Например: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2006, 12:03 |
|
||
|
Организация ключей
|
|||
|---|---|---|---|
|
#18+
Slider_spbЭ, как все запущено, у вас и таблички не нормализованы… Не то, чтобы я придирался к словам:), но причем тут нормализация? Вы описали типизацию (subtyping). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2006, 15:00 |
|
||
|
Организация ключей
|
|||
|---|---|---|---|
|
#18+
Ну, насчет того, что приведенные romanich таблички не нормализированы, я может и погорячился (по тем данным что приведены, однозначно сказать нельзя), а то что я сделал, действительно является типизацией, что было сказано мной чуть выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2006, 15:57 |
|
||
|
Организация ключей
|
|||
|---|---|---|---|
|
#18+
romanichИзвините, наверное неясно выразился, поясню: есть справочные таблицы - двигателя, выключатели, трансформаторы и т.п.. И есть основная таблица, содержит в себе список материалов для ремонта этого оборудования. Ключи в справочных таблицах у меня автоинкрементируемые поля и соответственно могут совпасть с другими ключами из др. таблиц. А я пока так и не понял, зачем нужно, чтобы ключи в справочных таблицах не совпали. Ну совпадут они в основной таблице и что? Что является ключом в основной таблице? Какая-то странная, IMHO, проблема. Можете пояснить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2006, 17:31 |
|
||
|
Организация ключей
|
|||
|---|---|---|---|
|
#18+
mirА я пока так и не понял, зачем нужно, чтобы ключи в справочных таблицах не совпали. Есть такая популярная идея - не включать в ссылающуюся таблицу поле "тип объекта", а вместо этого join-ами кодировать использование того или иного типа. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.01.2006, 21:37 |
|
||
|
Организация ключей
|
|||
|---|---|---|---|
|
#18+
Есть такая популярная идея - не включать в ссылающуюся таблицу поле "тип объекта", а вместо этого join-ами кодировать использование того или иного типа А вот это уже интересно, softwarer , поясните пожалуйста реализацию такого механизма. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2006, 06:26 |
|
||
|
Организация ключей
|
|||
|---|---|---|---|
|
#18+
Сверхстандартный пример. Физлица, юрлица, непересекающиеся айдишники. В этом случае: Код: plaintext 1. 2. - документы, выписанные на физических лиц. Или, например, Код: plaintext 1. 2. 3. 4. 5. 6. 7. Подчеркну, что практика.. сомнительная с моей точки зрения, но упоминается довольно часто. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2006, 16:01 |
|
||
|
Организация ключей
|
|||
|---|---|---|---|
|
#18+
2 softwarer Весьма непроизводительное решение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2006, 16:43 |
|
||
|
Организация ключей
|
|||
|---|---|---|---|
|
#18+
gardenman Как Вам сказать... с одной стороны, я не совсем уверен, что Ваше утверждение справедливо для произвольной ситуации. С другой стороны, я решительно не собираюсь говорить что-либо в пользу решения, которое считаю откровенно плохим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2006, 17:15 |
|
||
|
Организация ключей
|
|||
|---|---|---|---|
|
#18+
вот и договорились - решение плохое, хотя и рабочее. )) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.01.2006, 17:17 |
|
||
|
Организация ключей
|
|||
|---|---|---|---|
|
#18+
gardenman вот и договорились - решение плохое, хотя и рабочее. )) Но, часто, такими решениями и приходится пользоваться. Я, думаю, остановлюсь на этом варианте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2006, 06:36 |
|
||
|
Организация ключей
|
|||
|---|---|---|---|
|
#18+
romanichНо, часто, такими решениями и приходится пользоваться. Я, думаю, остановлюсь на этом варианте. вижу, что автор уже почти определился с решением и всё таки переспрошу ещё раз: зачем делать в одном поле ссылку на несколько таблиц?! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2006, 07:14 |
|
||
|
Организация ключей
|
|||
|---|---|---|---|
|
#18+
Dimkas romanichНо, часто, такими решениями и приходится пользоваться. Я, думаю, остановлюсь на этом варианте. вижу, что автор уже почти определился с решением и всё таки переспрошу ещё раз: зачем делать в одном поле ссылку на несколько таблиц?! Элементарно, Ватсон. Это - типизация. И когда нужно объекты определенного типа обрабатывать отдельно и по-своему, то может очень сильно повысить производительность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.01.2006, 10:33 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33511557&tid=1545427]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
150ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
70ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 459ms |

| 0 / 0 |
