![]() |
|
Модераторы: LSD |
![]()
|
|
| Onis |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 241 Регистрация: 18.6.2005 Где: Украина, Николаев Репутация: нет Всего: 3 |
Есть база данных с несколькими таблицами. Нужно чтобы у каждой записи в любой из таблиц был свой уникальный ключ. Как это сделать?
|
|||
|
||||
| nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: нет Всего: 31 |
Если оракл, то всё просто - один сиквенс на все таблицы.
Если мускуль - извращение с таблицей, в которой будешь хранить последний идентификатор. В этом случае придётся ещё делать свою надстройку, которая будет выполнять запросы по очереди. Запросы на инсерт - остальное ничего не покорёжит. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
| Onis |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 241 Регистрация: 18.6.2005 Где: Украина, Николаев Репутация: нет Всего: 3 |
Значит для мускула это лучше делать на программном уровне? ок.
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
А почему таблиц несколько? если требуется единый ключ, то во всех одна сущность...
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| nornad |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1079 Регистрация: 16.2.2007 Где: в Караганде Репутация: нет Всего: 31 |
не обязательно. Был у меня тут недавно случай, что один сиквенс генерил идентификатор для нескольких таблиц. В каждой таблице - своя сущность. Эти сущности сильно отличаются (если делать одну таблицу - будет слишком много лишних полей "на всякий пожарный", плюс будет проблемно добавить ещё одну сущность), но в одной ситуации считаются родственными. Поначалу я не видел смысла в таком сиквенсе, но понял, когда вник в проект (писал его не я). Добавлено через 2 минуты и 59 секунд Можно, конечно, наплодить кучу доп.таблиц, с уникальными для подвида полями, но несовместимость в том проекте всё равно имела бы место. Кстати, пришло в голову. Можно в мускуле держать таблицу тупо с идентификаторами. При добавлении - инсертим в id_table, берём получившийся ид и вставляем в нужную таблицу уже с ним. И прослойка не нужна. -------------------- Три достоинства программиста: Леность, Нетерпение и Гордость Ларри Уолл |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
Приблизительно о том я и говорю. Таблица - уникальный ИД и ссылка на одну из частных таблиц (грубо тип сущности + ИД в таблице этой сущности). А если есть сходные по всем таблицам свойства - можно и их сюда... хотя вот это уже вещь скорее спорная. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Onis |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 241 Регистрация: 18.6.2005 Где: Украина, Николаев Репутация: нет Всего: 3 |
Не буду филосовствовать, по средствам php заполняю
Всё уже работает, спасибо. Это сообщение отредактировал(а) Onis - 19.8.2008, 23:56 |
|||
|
||||
| solenko |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: нет Всего: 67 |
Onis, для mysql MERGE часом не то, что вам нужно?
-------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
| Akella |
|
|||
![]() Творец ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 18485 Регистрация: 14.5.2003 Где: Корусант Репутация: 3 Всего: 329 |
Если это firebird, то почти также как и у оракла- один генератор!
|
|||
|
||||
![]()
|
| Правила форума "Общие вопросы по базам данных" | |
|
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |