Цитата:
Изначально опубликовано Evgeniy
По-моему, они здесь не причем. Есть же свойство ValidateTableRelation и проверка "на лету" наличия вводимого значения в соответствующей таблице. Точно так же можно было реализовать и контроль ссыл. цел. Пусть на клиенте, это уже не так принципиально.
В том то и дело, что на основании этих свойств из таблицы, которая ссылается, получить список возможных значений легко, достаточно выполнить все вычисления для текущей записи. А вот из таблицы на которую ссылаются - нет. Для этого нужно получить список всех таблиц, которые могут на нее ссылаться (т.е. содержат ее имя в пределении свойства TableRelation), затем на основании всех записей этих таблиц определить (вычислить) множество записей, которые реально ссылаются. Что в общем случае практически невозможно. Поэтому прикладной программист, зная природу этой связи, сам должен написать код, который наиболее оптимально обработает данную ситуацию.
Цитата:
А по-моему, все-таки влечет. Даже не столько кл-серв. архитектура, сколько вообще претензия на большую серьезную систему. Не зря же все большие сервера БД (SQL server, oracle, sybase и иже с ними) это поддерживают. Но в общем-то это уже действительно вопрос философский. Просто из всех БД, которые я когда-либо видел, attain - это первая, которая позволяет пользователю влегкую произвести некое действие, которое нарушит целостность базы.
Вообще-то Attain - это не СУБД, а прикладная система. А не использует эти возможности только потому, что ее модель данных не может быть представлена стандартными средствами промышленных СУБД. Она более сложная. Кстати, в Axapta, которая претендует на еще более серьезную систему, все обстоит точно также (на сервере ссылочная целостность не контроллируется). Во многих других подобных системах тоже.
Цитата:
А что касается ошибки - на мой взгляд, наоборот - для каких-то крупных узлов это прописали, а для всех мелких - оставили так.
Хорошо, пусть будет не ошибка, а халатность :-)