Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Уникальность записи.
|
|||
|---|---|---|---|
|
#18+
Таблица о двух полях типа int. Связь. Поля зависят оба от внешнего ключа другой таблицы (одного и тогоже). Но как проверить уникальность? Ну чтоб нельзя было вставить туж самую запись. Каждое поле в отдельности может повторятся скока угодно раз. Но чтоб ИМЕННО записи различались. ЗЫ: народ, не отсылайте к доке. У меня книжку хорошую хулиган отобрал. Вернёт не скоро. Англицкий я не знаю. А ответ нужен как можно быстрее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2005, 14:09 |
|
||
|
Уникальность записи.
|
|||
|---|---|---|---|
|
#18+
Sarin wrote: > Таблица о двух полях типа int. Связь. Поля зависят оба от внешнего ключа > другой таблицы (одного и тогоже). Но как проверить уникальность? Ну чтоб > нельзя было вставить туж самую запись. Каждое поле в отдельности может > повторятся скока угодно раз. Но чтоб ИМЕННО записи различались. > > ЗЫ: народ, не отсылайте к доке. ... > Англицкий я не знаю. "учиться, учиться, и еще раз учиться" (с) Ульянов "век живи, век учись - дураком умрешь" (с) народное > А ответ нужен как можно быстрее. alter table mytabale add constraint cn_uniq_f1_f2 unique (field1, field2); - стандартный SQL :) Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2005, 14:16 |
|
||
|
Уникальность записи.
|
|||
|---|---|---|---|
|
#18+
Спасибо большое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2005, 14:33 |
|
||
|
Уникальность записи.
|
|||
|---|---|---|---|
|
#18+
Задача усложнилась. Допустим есть запись 5|3 Можноль без триггера запретить вставлять не только 5|3, но и 3|5? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2005, 18:05 |
|
||
|
Уникальность записи.
|
|||
|---|---|---|---|
|
#18+
Posmotrite v storonu "CHECK" pri sozdanii tablicy, ili dobavit' cherez ALTER, tochno sintaksis ne pomnju, no regexp byl ves'ma interesen. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2005, 18:19 |
|
||
|
Уникальность записи.
|
|||
|---|---|---|---|
|
#18+
? а при чём тут pegexp? У меняж int. Оба поля. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.07.2005, 21:53 |
|
||
|
Уникальность записи.
|
|||
|---|---|---|---|
|
#18+
Таблица о двух полях типа int. Связь. Поля зависят оба от внешнего ключа другой таблицы (одного и тогоже). Но как проверить уникальность? Ну чтоб нельзя было вставить туж самую запись. Каждое поле в отдельности может повторятся скока угодно раз. Но чтоб ИМЕННО записи различались. вам не кажется странным такая постановка задачи? что хочется получить в конечном итоге? (для чего это надо?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2005, 00:53 |
|
||
|
Уникальность записи.
|
|||
|---|---|---|---|
|
#18+
Задача была сделать ограничение, не позволяющее два раза вставить одинаковую запись. Например есть у нас 3|5. Так вот чтоб второй раз 3|5 вставить было нельзя. Но после того как я оптимизировал запрос понадобилось запретить вставлять не только 3|5, но и 5|3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2005, 11:03 |
|
||
|
Уникальность записи.
|
|||
|---|---|---|---|
|
#18+
нет я имел ввиду почему именно такая таблица (2 колонки зависят от 1) мне кажется гдето ошибка именно в схеме таблиц и все что вы спрашиваете это полная ерунда поскольку это все костыли а не решение проблемы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.07.2005, 12:10 |
|
||
|
Уникальность записи.
|
|||
|---|---|---|---|
|
#18+
SarinЗадача была сделать ограничение, не позволяющее два раза вставить одинаковую запись. Например есть у нас 3|5. Так вот чтоб второй раз 3|5 вставить было нельзя. Но после того как я оптимизировал запрос понадобилось запретить вставлять не только 3|5, но и 5|3. Код: plaintext Или что-то в этом духе, по обстоятельствам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.07.2005, 19:19 |
|
||
|
Уникальность записи.
|
|||
|---|---|---|---|
|
#18+
vfabrнет я имел ввиду почему именно такая таблица (2 колонки зависят от 1) мне кажется гдето ошибка именно в схеме таблиц и все что вы спрашиваете это полная ерунда поскольку это все костыли а не решение проблемы Есть сущность улица. Улица может граничить с другой улицей. Соответственно естли у1 граничит с у2, то и у2 граничит с у1. Запрос на выборку это учитывает и если есть такие записи: 3|5 5|6 5|2 8|5 то запрос на выборку улиц, граничащих с 5 выдаст 3, 6, 2 и 8. Задача CHECK - обеспечить проверку на избыточность. Если есть записи 3|5 и 5|3, то это для селекта не фатально. Он берёт дистинкт. Но избыточность заставляет меня нервноворочатся по ночам. А CHECK спасёт если он поддерживает вложенные запросы. Например можноль такой алгоритм реализовать: если пытаются вставить f1, f2 и (f1,f2) уникальны, то проверить есть ли запись f2,f1? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.07.2005, 23:22 |
|
||
|
Уникальность записи.
|
|||
|---|---|---|---|
|
#18+
задам еще 1 вопрос для того чтобы до конца понять чего вам хочется :-) пока не берем во внимание (так называемую) избыточность все есть как есть улица 1 и к ней 2,3,4 улица 2 и к ней 1,3,5 улица 3 и к ней 1,2,8 получается 1|2 1|3 1|4 2|1 2|3 2|5 3|1 3|2 3|8 данные у нас есть какой результат нужно получить? те как я понимаю это нужно каким нибудь пользователям что они хотят получить в конечном итоге зная например номер улицы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 00:01 |
|
||
|
Уникальность записи.
|
|||
|---|---|---|---|
|
#18+
может быть, я не правильно понял, но сдается мне, что тут описывается неориентированный граф. если это так, то описывать вершины текстом в виде "n|m", вообще говоря, не правильно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 09:40 |
|
||
|
Уникальность записи.
|
|||
|---|---|---|---|
|
#18+
пардон, действиетльно, не правильно понял по поводу текстовых полей :( в любом случае, тут остается именно неориентированный граф. не пробовал ставить exists в check, но, по идее, это должно прокатить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 09:46 |
|
||
|
Уникальность записи.
|
|||
|---|---|---|---|
|
#18+
прошу прощения за флуд. проверил на 7.4 - check(exists(....)) ставить не разрешает. видимо, без триггера тут не обойтись. к тому же, триггер чем приятнее, что он может не вызывать эксепшен, а просто не вставлять запись, если она нарушает уникальность ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 10:02 |
|
||
|
Уникальность записи.
|
|||
|---|---|---|---|
|
#18+
ИМХА, check (f1 < f2) катит лучше всего: граф неориентированный без петель => его матрица смежности симметричная => таблице нужно хранить только ее "верний треугольник" => элементы f1 и f2 таблицы "Смежность"(f1,f2) должны удовлетворять (f1 < f2) # ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 10:13 |
|
||
|
Уникальность записи.
|
|||
|---|---|---|---|
|
#18+
Слушайте, а ведь это гениально. Я сначала не врубился как будет check(f1 < f2) работать. А сейчас понял. Пользователь при добавлении границы между улицами будет извещён о том, что первым полем должна вставляца младшая улица (с меньшим UID). И границы между 3 и 5 можно будет вставить только как 3|5. Спасибо всем большое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 12:24 |
|
||
|
Уникальность записи.
|
|||
|---|---|---|---|
|
#18+
vfabrзадам еще 1 вопрос для того чтобы до конца понять чего вам хочется :-) пока не берем во внимание (так называемую) избыточность все есть как есть улица 1 и к ней 2,3,4 улица 2 и к ней 1,3,5 улица 3 и к ней 1,2,8 получается 1|2 1|3 1|4 2|1 2|3 2|5 3|1 3|2 3|8 данные у нас есть какой результат нужно получить? те как я понимаю это нужно каким нибудь пользователям что они хотят получить в конечном итоге зная например номер улицы? А теперь я хочу для конкретной улицы получить список улиц на которые с неё перейти могу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 12:27 |
|
||
|
Уникальность записи.
|
|||
|---|---|---|---|
|
#18+
для удобства выборки и для полноты картины не стоит выкидывать данные я например не считаю избыточным поле 2|1 если у меня есть поле 1|2 максимум что вы сэкономите это место на харде, а получите усложненный запрос и неполные данные вдруг вам понадобится направление? если это например карта автомобильная москвы. может у улицы одностореннее движение и с нее можно съехать а на нее заехать нельзя. так что я бы не стал разбрасываться данными так бездумно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 13:01 |
|
||
|
Уникальность записи.
|
|||
|---|---|---|---|
|
#18+
vfabrдля удобства выборки и для полноты картины не стоит выкидывать данные я например не считаю избыточным поле 2|1 если у меня есть поле 1|2 максимум что вы сэкономите это место на харде, а получите усложненный запрос и неполные данные вдруг вам понадобится направление? если это например карта автомобильная москвы. может у улицы одностореннее движение и с нее можно съехать а на нее заехать нельзя. так что я бы не стал разбрасываться данными так бездумнобоюсь, в таком случае придется при каждом инсерте/делите добавлять/удалять встречные направления и проверять уникальность/целостность SarinА теперь я хочу для конкретной улицы получить список улиц на которые с неё перейти могу.запрос по улицам на которые можно попасть с данной union all запрос по улицам с которых можно попасть на данную. или вариации, как "или" в where ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 13:28 |
|
||
|
Уникальность записи.
|
|||
|---|---|---|---|
|
#18+
SarinЕсть сущность улица. Улица может граничить с другой улицей.Имеется в виду перекресток? А более двух улиц могут пересекаться в одном и том же перекрестке? А две улицы могут пересекаться друг с другом в двух разных перекрестках? Просто так спросил. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 13:36 |
|
||
|
Уникальность записи.
|
|||
|---|---|---|---|
|
#18+
2vfbar: пардон, опять не подумавши ответил %) согласен, можно оставить и чуть усложнить запрос. другое дело, что алгоритм заполнения этой таблицы может не учитывать направление ребра графа ;))))) может, там просто передается неупорядоченная пара улиц ;)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 13:37 |
|
||
|
Уникальность записи.
|
|||
|---|---|---|---|
|
#18+
LeXa NalBat SarinЕсть сущность улица. Улица может граничить с другой улицей.Имеется в виду перекресток? А более двух улиц могут пересекаться в одном и том же перекрестке? А две улицы могут пересекаться друг с другом в двух разных перекрестках? Просто так спросил. :)уверен на 100%, что могут и, скорее всего, в задаче это потребуется. а в плане представления в базе это все "по модулю" ;)) как был граф - так и остался ;))))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 13:40 |
|
||
|
Уникальность записи.
|
|||
|---|---|---|---|
|
#18+
LeXa NalBat SarinЕсть сущность улица. Улица может граничить с другой улицей.Имеется в виду перекресток? А более двух улиц могут пересекаться в одном и том же перекрестке? А две улицы могут пересекаться друг с другом в двух разных перекрестках? Просто так спросил. :) понятно, что спросил не просто так, а сыршенно прально,,, Но... уллицы воопще бывают странные. Вот есть в знакомом мне городке вулица... скажем "А", так вот тут - дома улицы А, и там - тоже дома улицы А, а промеж них - проезжая часть и рядок домов вообще даже улицы Б. И вроде бы как у "улицы" А и нет никакой проезжей части (или она где-то в другом месте), и нет никаких перекрестков с улицей Б. А меж тем они, эти А и Б - смежны домами. И модель улиц как неких линий или проспектов с перекрестками в случае упомянутой улицы А не проканывает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 13:56 |
|
||
|
Уникальность записи.
|
|||
|---|---|---|---|
|
#18+
LeXa NalBat SarinЕсть сущность улица. Улица может граничить с другой улицей.Имеется в виду перекресток? А более двух улиц могут пересекаться в одном и том же перекрестке? А две улицы могут пересекаться друг с другом в двух разных перекрестках? Просто так спросил. :) Не важно в каком месте они пересекаются. Абсолютно. Важен факт того, что с улицы а можно перейти на улицу б. При этом возможность перехода с а на б подразумевает обязательную возможность перехода с б на а. Карта не автомобильная. Исключительно пешеходная. Вот запрос если кому интрересно: Код: plaintext ЗЫ: вообще-то онлайн-игру делаем:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.07.2005, 14:05 |
|
||
|
|

start [/forum/topic.php?fid=53&msg=33183798&tid=2007108]: |
0ms |
get settings: |
8ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
171ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
43ms |
get tp. blocked users: |
1ms |
| others: | 246ms |
| total: | 494ms |

| 0 / 0 |
