Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Ферзевой constraint / 4 сообщений из 4, страница 1 из 1
17.11.2020, 23:45
    #40019732
НеофитSQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ферзевой constraint
Хочу записать расположение N ферзей на доске произвольного размера в таблице.
Ферзи, как в известной задаче, не должны угрожать друг другу.

Началось все хорошо:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
create table qtable
(
  x integer not null,
  y integer not null
);
alter table qtable  add constraint UK__QTABLE_X unique (X);
alter table qtable  add constraint UK__QTABLE_Y unique (Y);



Теперь надо как-то прикрутить диагональный constraint, желательно без кода.
Господа шахматисты, как это лучше сделать?

Нужно чтобы таблица одинаково била по рукам за нарушение рядов, столбцов или диагонали.
...
Рейтинг: 0 / 0
17.11.2020, 23:55
    #40019735
НеофитSQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ферзевой constraint
A, тьфу, попробовал наугад и получилось.

Запостю ответ завтра, на случай кто-то не знает ответ и хочет поупражняться.
...
Рейтинг: 0 / 0
18.11.2020, 01:19
    #40019757
Sayan Malakshinov
Модератор форума
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ферзевой constraint
НеофитSQL
Код: plsql
1.
2.
alter table qtable  add constraint UK__QTABLE_XY1 unique (X+Y);
alter table qtable  add constraint UK__QTABLE_XY2 unique (X-Y);

печаль. было бы что тут думать...
...
Рейтинг: 0 / 0
18.11.2020, 02:13
    #40019766
НеофитSQL
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ферзевой constraint
xtender,

То, что могучим модераторам легко, у новичков заняло минуту, а то и три :)

Правда, я сделал хуже, через виртуальные столбцы*.
Потом пришлось поломать голову, как в таблицу с виртуальными столбцами добавлять строки.

* UI разбаловал. Я не подумал про constraints на выражения.
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Ферзевой constraint / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]