|
|
|
Схема данных. Связь таблицы сама с собою.
|
|||
|---|---|---|---|
|
#18+
Существует таблица. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Является ли правильным, с учетом возможного переноса базы в будущем в MS SQL SERVER 2000, организация связи этой таблицы с собою в схеме данных ACCESS. Нет ли здесь, каких то подводных камней? Описание связи, взятое из конструктора ACCESS: Объединение ВСЕХ записей из Таблица1 (поле Код) и только тех записей из Таблица1_1 (поле ParentId), в которых связанные поля совпадают. Связь предполагает: Код: plaintext 1. 2. Тип отношения: один-ко-многим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2003, 16:22 |
|
||
|
Схема данных. Связь таблицы сама с собою.
|
|||
|---|---|---|---|
|
#18+
в sql 2000 не выйдет увидеть такую связь на диаграмме, ибо справка говорит:You can only have one copy of any table on a diagram. но функционально все это можно (и нужно) организовать (в sql server'е) используя триггеры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2003, 16:48 |
|
||
|
Схема данных. Связь таблицы сама с собою.
|
|||
|---|---|---|---|
|
#18+
Не зря я задал это вопрос, чуя неладное. Спасибо за совет. А есть ли еще мнения насчет присутствия такой связи в ACCESS? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2003, 17:18 |
|
||
|
Схема данных. Связь таблицы сама с собою.
|
|||
|---|---|---|---|
|
#18+
>в sql 2000 не выйдет увидеть такую связь на диаграмме А разве самообъединение в MS SQL не показывается линией к самому себе? >Является ли правильным, с учетом возможного переноса базы в будущем в MS SQL SERVER 2000 Да. Обычный способ создания деревьев/иерархий. На форуме (этом) и MS SQL не мало копий сломано по поводу улучшайзинга. По ищи поиском по форумам, найдешь массу ссылок на терорию и практику. Каскадное обновление - лишнее коль идет связка по ID. З.Ы. Единственное, что не замкни элемент сам на себя - а то он не сможет никогда удалиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2003, 17:24 |
|
||
|
Схема данных. Связь таблицы сама с собою.
|
|||
|---|---|---|---|
|
#18+
Еще можно рекомендовать - сними каскадное удаление. Ибо удаленив Родителя (случайно) удалишь все свою иерархию по нему. Лучше пусть юзеры делают это сознательно и начиная с последней ветки. IMHO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.06.2003, 17:37 |
|
||
|
Схема данных. Связь таблицы сама с собою.
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. Также, спасибо автору этого совета. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2003, 03:54 |
|
||
|
Схема данных. Связь таблицы сама с собою.
|
|||
|---|---|---|---|
|
#18+
>xthn. Вы писали. >Каскадное обновление - лишнее коль идет связка по ID. Все дело в том что, в книге "Разработка корпоративных приложений в Access 2002 " авторы Гетц, Гунделой, Литвин, говорится об ошибке которая существует со времен ACCESS 2.0 и до сих пор не исправлена. Книга сейчас не под рукой, но я обязательно напишу сюда фрагмент и мы его обсудим. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2003, 05:24 |
|
||
|
Схема данных. Связь таблицы сама с собою.
|
|||
|---|---|---|---|
|
#18+
распните меня... пусть я подавлюсь своими вышесказанными словами... делал ведь же сам такое и так лоханулся... справка мастдай. :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2003, 08:38 |
|
||
|
Схема данных. Связь таблицы сама с собою.
|
|||
|---|---|---|---|
|
#18+
2cab про ошибку, связанную с каскадным обновлением, у Гетца я что-то не помню. Какой у нее смысл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2003, 08:59 |
|
||
|
Схема данных. Связь таблицы сама с собою.
|
|||
|---|---|---|---|
|
#18+
2cab про ошибку, связанную с каскадным обновлением, у Гетца я что-то не помню. Какой у нее смысл? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2003, 08:59 |
|
||
|
Схема данных. Связь таблицы сама с собою.
|
|||
|---|---|---|---|
|
#18+
Все дело в том что, в книге "Разработка корпоративных приложений в Access 2002 " авторы Гетц, Гунделой, Литвин, говорится об ошибке которая существует со времен ACCESS 2.0 и до сих пор не исправлена. Из-за этого, как я понимаю желательно указание каскадного обновления. Или это не так? Вот описание этой ошибки: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2003, 12:48 |
|
||
|
Схема данных. Связь таблицы сама с собою.
|
|||
|---|---|---|---|
|
#18+
Почему так происходит: Если имя таблицы такое: Код: plaintext то связь этой таблицы сама с собой (описанным выше, в этом обсуждении, образом) не проходит. ACCESS выдает сообщение о недопустимой длине имени таблицы. Но когда я усекаю имя таблицы до Код: plaintext то связь осуществляется успешно. Более того, я обнаружил, что если таблицу tbl_ПриходКонтейнеровГруз добавить в схему данных, потом организовать ее связь сама с собою (такая связь осуществляется успешно), потом вернуться в окно базы данных и дать ей новое имя, например такое tbl_ПриходКонтейнеровГрузВКонтейнере , потом вернуться снова в схему базы данных и добавить снова таблицу tbl_ПриходКонтейнеровГрузВКонтейнере , то все прежние связи (таблицы tbl_ПриходКонтейнеровГруз ) появляются автоматически, но уже в качестве связей таблицы tbl_ПриходКонтейнеровГрузВКонтейнере . Получается, что если таблица имеет слишком длинное имя, то ACCESS не может создать связь этой таблицы сама с собою. Получается, что описанными выше выкрутасами, все таки можно установить связь таблицы сама с собою. Как все это понимать? И может ли связь, установленная через такие выкрутасы, давать сбой где-либо и сыграть с автором программы злую шутку в будущем. Какая все-таки должна быть оптимальная длина имени таблицы? Стоит ли давать таблицам исключительно английские имена. Кстати не мешало бы проверить установление связи сама с собою для таблицы с длинным английским именем. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2003, 13:28 |
|
||
|
Схема данных. Связь таблицы сама с собою.
|
|||
|---|---|---|---|
|
#18+
Ответьте, пожалуйста кто-нибудь на мой последний вопрос. P.S. Может быть нужно назвать все таблицы по английски, да покороче? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2003, 16:31 |
|
||
|
Схема данных. Связь таблицы сама с собою.
|
|||
|---|---|---|---|
|
#18+
Число символов в имени объекта любого объекта БД не более 64 Когда создаешь связь, она получает имя по-умолчанию равное имени одной таблице плюс имя другой. Твой случай - 36 символов плюс опять 36 =72 что больше 64. Задавай имена таблиц не более 30 символов и будет тебе счастье /либо создавай связи программно./ З.Ы. Счастье может быть и на русском языке, но право я лично задолбался раскладку переключать. Есть еще минусы, но не значительные (типа сторонних утилит, непонимающих другую раскладку акроме англицкой) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2003, 16:40 |
|
||
|
Схема данных. Связь таблицы сама с собою.
|
|||
|---|---|---|---|
|
#18+
поправка: не более 32 символов. а не более 31 (вроде MS SQL 7 имел такое ограничение на длину имени таблицы - вдруг когда-либо прийдектся переходить на столь древнюю версию :) ) З.Ы. Да и еще: Краткость - сестра таланта. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2003, 16:42 |
|
||
|
Схема данных. Связь таблицы сама с собою.
|
|||
|---|---|---|---|
|
#18+
Магическое число - 64. Откуда же об этом будешь знать, как не из форума. Спасибо Вам Виктор большое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2003, 17:18 |
|
||
|
Схема данных. Связь таблицы сама с собою.
|
|||
|---|---|---|---|
|
#18+
>Магическое число - 64. Откуда же об этом будешь знать, как не из форума. Подобную информацию лучше получать из справки. Например, я использовал справку из Акеса2000, если бы у тебя был 97/95, то /возможно/ ты сел бы в лужу (или я :) ) Поэтому, набери в поиске справке слово "спецификация" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.06.2003, 19:17 |
|
||
|
|

start [/forum/topic.php?fid=45&gotonew=1&tid=1680854]: |
0ms |
get settings: |
5ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
43ms |
get topic data: |
7ms |
get first new msg: |
4ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
| others: | 256ms |
| total: | 380ms |

| 0 / 0 |
