![]() |
|
Модераторы: LSD |
![]()
|
|
| Dims |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1016 Регистрация: 21.11.2006 Репутация: нет Всего: 11 |
Допустим есть таблица "Слог". В этой таблице два поля Код и Напис. В первом поле уникальный числовой код слога, во втором поле уникальное текстовое написание слога.
Есть вторая таблица, "Состав Слова". Каждое слово -- это цепочка слогов. Но хранятся они не "горизонтально", "вертикально", то есть, в этой таблице три поля Код, Но, КодСлог, которые значат (1) код слова, (2) порядковый номер слога в слове и (3) код соответствующего слога. Вопрос: можно ли без триггеров в этой или аналогичной структуре добиться, чтобы нельзя было ввести два слова с одинаковым слоговым составом? То есть, назначить ключ, который как бы "транспонирован"? |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15719 Регистрация: 24.3.2004 Где: Dublin Репутация: 24 Всего: 538 |
Тут даже с триггерами не все так просто. Есть у нас слово мама в базе. И решили мы добавить туда слово мамалыга. После вставки первых двух слогов триггер должен будет выдать ошибку ибо два слова совпадают по слогам. Он же не знает, что будут еще слога для второго слова.
Тут я вижу два варианта:
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Deniz |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1251 Регистрация: 16.10.2004 Где: Новый Уренгой Репутация: 7 Всего: 44 |
-------------------- "Для того чтобы сделать шаг вперед, достаточно пинка сзади" (с) |
|||
|
||||
| LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15719 Регистрация: 24.3.2004 Где: Dublin Репутация: 24 Всего: 538 |
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
| Zloxa |
|
|||
|
Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 11 Всего: 161 |
Долго руки не доходили побаловаться фаст рефрешем для снэпшотов.
К сожалению, как выяснилось, фаст рефреш имеет болше ограничений, нежели мною ожидалось. Потому на реализацию пришлось наложить большие ограничения, нежели предполагал ранее. Ограничения: -- Строго платформ специфик - Oracle -- Проверка констрейта производится при коммите. Соответственно, если в транзакции было добавлено более одного слова, откатятся все -- Слоги не могут идентифицироваться более чем трехзначным числом -- Позиция слога в слове должна определяться числом от одного до 12 (ну можно и 13, но есть, хоть и ималовероятные, но риски), можно измениь разрядность идентификации слога за счет уменьшения ограничения количества слогов (например для разрядности 4, количество возможных слогов в будет ограничено 9ю), Слоги в слове должны нумироваться строго последовательно (для обеспечения контроля этого правила докручено еще одно поле "пред но", FK и чек на "но") Большое спасибо топикстартеру за интересную, хоть и малонасущную задачу, которая позволила мне приобрести несколько новых скиллов, набить несколько новых шишек. PS "слог"."код" обязан быть не отрицательным(забыл чек натянуть)
ЗЫ Мне раньше казалось что автор говорил что ему мало интересна целевая платформа. Возможно это были авторские уточнения, которые были потерты модером, как малоинформативыне. Это сообщение отредактировал(а) Zloxa - 20.10.2008, 12:43 -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 13 Всего: 454 |
Гм... А первичный ключ, извините, что? -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
![]()
|
| Правила форума "Общие вопросы по базам данных" | |
|
|
Данный форум предназначен для обсуждения вопросов о базах данных не попадающих под тематику других форумов:
Данный форум не предназначен для:
Если вы не соблюдаете эти правила, не удивляйтесь потом не найдя свою тему/сообщение.
Полезные советы: Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, LSD, Zloxa. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | СУБД, общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |