Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5   вперед  Ctrl      все
 Re: Простите, накипело.  [new]
hvlad
Member

Откуда:
Сообщений: 11564
pkarklin
автор
3) Представления не должны наследовать ограничения таблиц. Обдумай ситуацию с которой я столкнулся: есть таблица с полем NOT NULL, есть представление на таблице, есть триггер на представлении, который пишет данные в таблицу и всегда заполняет поле NOT NULL конкретным значением. Объясни мне какого хрена представление требует чтобы я при вставке через представление обязательно задавал значение этого поля, а?


Хм... Интересная логика. А откуда движку сервера знать, что Вы там в триггере написали?! Разреши Вам вставялть NULL, так Вы и вставите ведь! Как по другому проверить целостность данных, если учесть, что представление, это не реальный объект, а всего-навсего "сохраненный запрос"
Ограничения на таблицах ? Вот пусть таблицы его и проверяют

pkarklin
автор
5) В консерватории говоришь? Урл по-моему 4Кб может занимать. Т.е. сохранить два урла в таблице - это уже предел для MsSQL или в консерватории неполадки? Или может блобами всё заменить? Может в MSSQL стрроковые блобы так же быстро обрабатываются как строки и имеют такой же богатый набор функций? Тогда снимаю шляпу.


Хм... Точно, дело было в консерватории! :) А не приходило в голову, хранить урлы не в полях одной записи, а в одном поле нескольких записей
Да, да - "дизайн" syscomments - верх совершенства, давайте пихать его во все дыры
3 июл 06, 16:38    [2837684]     Ответить | Цитировать Сообщить модератору
 Re: Простите, накипело.  [new]
guest_20040621
Guest
> работает у него пара работников с не очень популярной базой

Где "не очень популярной"? Для 1С, значит, PostgreSQL достаточно популярна, чтобы ее использовать, а для какой-то вшивой лавчонки с тупым директором - не очень?

> Вывод - надо переходить на другую базу.

Более простое и дешевое предложение работодателю: сменить поставщика травы или вообще отказаться от наркотиков. Опциональное предложение: продать что-нибудь ненужное и на вырученные деньги имплантировать чуточку мозгов и купить поводок для жабы.
3 июл 06, 16:39    [2837694]     Ответить | Цитировать Сообщить модератору
 Re: Простите, накипело.  [new]
_pgSam_
Guest
Неужели "зажравшиеся" работники могут стать причиной смены СУБД?

Тем более мы в общем-то не зажрались.

Дело в том, что в этой базе кроме всего прочего очень хитрым образом ведётся чёрная бугалтерия. Ведётся так, что непосвящённый сможет увидить только белую даже если будет иметь все возможные права. Или зайдёт под нужным пользователем. Муж делал эти фишки на C в виде *.so к Постгрису. Как - не знаю. Сама на C не пишу. Но перенести это на другую СУБД будет практически невозможно. Наверное.
3 июл 06, 16:53    [2837773]     Ответить | Цитировать Сообщить модератору
 Re: Простите, накипело.  [new]
MX -- ALEX
Guest
_pgSam_
Неужели "зажравшиеся" работники могут стать причиной смены СУБД?

Тем более мы в общем-то не зажрались.

Дело в том, что в этой базе кроме всего прочего очень хитрым образом ведётся чёрная бугалтерия. Ведётся так, что непосвящённый сможет увидить только белую даже если будет иметь все возможные права. Или зайдёт под нужным пользователем. Муж делал эти фишки на C в виде *.so к Постгрису. Как - не знаю. Сама на C не пишу. Но перенести это на другую СУБД будет практически невозможно. Наверное.


супруги вместе не должны работать - слишком сильнаяя оппозиция
любой работодатель постарается изменить такую ситуацию

да и безопаснее работать в разных фирмах -
со всех точек зрения :)
3 июл 06, 17:01    [2837829]     Ответить | Цитировать Сообщить модератору
 Re: Простите, накипело.  [new]
Gold
Member

Откуда: Харьков
Сообщений: 2947
2 hvlad:

По поводу IMPLICIT TRANSACTION: не знаю что оно там пишет. Щас пока в try catch Commit/Rollback засунул и просто игнорирую эту ошибку. А чем, собственно, посмотреть что на сервер отсылается? Мне трам написали: смотри профайлером. А каким профайлером?
3 июл 06, 17:13    [2837913]     Ответить | Цитировать Сообщить модератору
 Re: Простите, накипело.  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
guest_20040621,
странное у вас отношение к людям, которые дают возможность зарабатывать
Наверное они как минимум чего-то добились


_pgSam_
Неужели "зажравшиеся" работники могут стать причиной смены СУБД?
Тем более мы в общем-то не зажрались.

Не сами работники, а ситуация зависимости от этих работников. Это рискованно.
Я не писал слова "зажрались" и имел ввиду несколько другое.
_pgSam_
Дело в том, что в этой базе кроме всего прочего очень хитрым образом ведётся чёрная бугалтерия. Ведётся так, что непосвящённый сможет увидить только белую даже если будет иметь все возможные права. Или зайдёт под нужным пользователем. Муж делал эти фишки на C в виде *.so к Постгрису. Как - не знаю. Сама на C не пишу. Но перенести это на другую СУБД будет практически невозможно. Наверное.

Ну да, как же они теперь без нас.

Ну собственно Вы только подтвердили мои подозрения
3 июл 06, 17:17    [2837929]     Ответить | Цитировать Сообщить модератору
 Re: Простите, накипело.  [new]
hvlad
Member

Откуда:
Сообщений: 11564
Gold
2 hvlad:

По поводу IMPLICIT TRANSACTION: не знаю что оно там пишет. Щас пока в try catch Commit/Rollback засунул и просто игнорирую эту ошибку. А чем, собственно, посмотреть что на сервер отсылается? Мне трам написали: смотри профайлером. А каким профайлером?
Который
"C:\Program Files\Microsoft SQL Server\80\Tools\Binn\profiler.exe" :)

Оффтопишь, однако
3 июл 06, 17:26    [2837971]     Ответить | Цитировать Сообщить модератору
 Re: Простите, накипело.  [new]
Gold
Member

Откуда: Харьков
Сообщений: 2947
2 hvlad:

Спасибо, умолкаю. Я просто весь на нервах с этим MSSQL :-)
3 июл 06, 17:29    [2837993]     Ответить | Цитировать Сообщить модератору
 Re: Простите, накипело.  [new]
ChA
Member

Откуда: Москва
Сообщений: 11383
hvlad
Ограничения на таблицах ? Вот пусть таблицы его и проверяют
Все на самом деле несколько иначе. При обновления данных через view существуют определенные ограничения, которые, во-первых, описаны явно в документации, во-вторых, ограничения для подобных view есть в описании стандарта ANSI, хотя не готов ставить между ними полного равенства. Факт то, что они существуют, ведь, надеюсь, понятно, что не всякое view можно обновить ? Ровно исходя из этого и берется определенная информация об ограничениях прямо из базовых таблиц, кажется это правильным или нет.
Есть триггера INSTEAD или нет - дело последнее, их наличие не меняет ситуации, это просто механизм, который срабатывает при определенных условиях, не более того. Соответственно, поведение updatable views не меняется от того, добавили потом триггера или нет.
hvlad
Да, да - "дизайн" syscomments - верх совершенства, давайте пихать его во все дыры
Не надо передергивать, вопрос сколько урлов должно быть в записи, целиком и полностью зависит от проектирования. Плохо, когда ограничения СУБД мешают ему, но, допустим, проектировщик добавляет поля url1, ..., urlN в одну запись на все случаи жизни. В этом случае у меня лично возникают некоторые сомнения в адекватности подхода.
А чем syscomments не угодила, совсем непонятно, что Вы там забыли ? Это вотчина разработчиков СУБД, и если они применили этот подход, то возможно нашли в нем положительные качества. Или Вы считаете, что безусловно правы ? Тогда нет вопросов, MSSQL делали бараны.
3 июл 06, 17:49    [2838133]     Ответить | Цитировать Сообщить модератору
 Re: Простите, накипело.  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67524
Блог
ChA
ведь, надеюсь, понятно, что не всякое view можно обновить?

Хм. Можно примеры?

ChA
Не надо передергивать, вопрос сколько урлов должно быть в записи, целиком и полностью зависит от проектирования.

Я бы сказал, он зависит от решаемой задачи, и не совсем уверен, чьи действия в данном случае оценил бы сказанным Вами словом.
3 июл 06, 18:05    [2838227]     Ответить | Цитировать Сообщить модератору
 Re: Простите, накипело.  [new]
Gold
Member

Откуда: Харьков
Сообщений: 2947
2 ChA:

какой урл1 ... урлN

Простой пример из нашей практики - система отображения новостей. Один урл - это урл новости, второй - это урл иконки. Не вижу причин хранить это не в двух полях одной таблицы. А MSSQL тебе фигу покажет.
3 июл 06, 18:06    [2838240]     Ответить | Цитировать Сообщить модератору
 Re: Простите, накипело.  [new]
ChA
Member

Откуда: Москва
Сообщений: 11383
softwarer
Можно примеры?
Как минимум, с агрегированием.
softwarer
Я бы сказал, он зависит от решаемой задачи, и не совсем уверен, чьи действия в данном случае оценил бы сказанным Вами словом.
Я бы сказал, проектируем от решаемой задачи, а не так, ради время потратить. Давайте без игры словами, ладно ? Если что-то непонятно было в моем примере, поясните, постараюсь быть более внятным.
Gold
Замечательно, и Вам не хватило 2х полей по 4000 символов ? Более того, можете делать хоть 10 полей по 8000, но общая длина не может быть более 8000. Кстати, у Вас каждая новость сопровождается своей иконкой ?
3 июл 06, 18:19    [2838298]     Ответить | Цитировать Сообщить модератору
 Re: Простите, накипело.  [new]
guest_20040621
Guest
> странное у вас отношение к людям, которые дают возможность зарабатывать

Абсолютно адекватное.

> Наверное они как минимум чего-то добились

Чего добились? Бабла заработали? Это еще не достижение.

Знаете, уважаемый, бизнес - особенно в России - такое же грязное занятие, как политика. Так что в идеальном случае характеристика работодателя - максимум нейтральна.
3 июл 06, 18:39    [2838363]     Ответить | Цитировать Сообщить модератору
 Re: Простите, накипело.  [new]
Gold
Member

Откуда: Харьков
Сообщений: 2947
2 ChA:

К счастью мы переубедили заказчика что эту задачу не стоит делать на MSSQL и она у нас на FireBird. Что качается новостей - они не все с иконками. И что с того? На самом деле это немного оторванный от жизни пример. Если так уж хочется MSSQL оправдать, можно почитать это
3 июл 06, 19:36    [2838574]     Ответить | Цитировать Сообщить модератору
 Re: Простите, накипело.  [new]
Gold
Member

Откуда: Харьков
Сообщений: 2947
Хотел сказать вышеприведенной ссылкой что Item RSS никак не влезит в запись MSSQL базы, хоть ты тресни. Прийдётся или в блобы пихать, или по разным таблицам в отношенни 1:1распихивать. И то и другое по-моему бред.
3 июл 06, 19:40    [2838584]     Ответить | Цитировать Сообщить модератору
 Re: Простите, накипело.  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
Gold
Хотел сказать вышеприведенной ссылкой что Item RSS никак не влезит в запись MSSQL базы, хоть ты тресни. Прийдётся или в блобы пихать, или по разным таблицам в отношенни 1:1распихивать. И то и другое по-моему бред.

Если Вы не собираетесь по этим данным делать какой-то поиск - то чем плохо запихать в БЛОБ? Если собираетесь - то лучше выделить несколько ключевых полей и записать в отдельную таблицу, а всё целиком записать в БЛОБ.
В общем неправильные подходы к проектированию
3 июл 06, 20:43    [2838683]     Ответить | Цитировать Сообщить модератору
 Re: Простите, накипело.  [new]
AAron
Member

Откуда: Москва
Сообщений: 4324
Gold
Хотел сказать вышеприведенной ссылкой что Item RSS никак не влезит в запись MSSQL базы, хоть ты тресни. Прийдётся или в блобы пихать, или по разным таблицам в отношенни 1:1распихивать. И то и другое по-моему бред.

SQL Server 2005 есть тип данных XML, индексируется, валидируется и т.д.
подойдет?
3 июл 06, 22:49    [2838854]     Ответить | Цитировать Сообщить модератору
 Re: Простите, накипело.  [new]
andy st
Member

Откуда:
Сообщений: 899
Gold
К счастью мы переубедили заказчика что эту задачу не стоит делать на MSSQL и она у нас на FireBird.

повезло...
хотя глупейших ход только с той точки зрения, что вы лишаете себя возможности предлагать свой продукт на разных программных платформах.
далеко не все заказчики лекго переубеждаются, некоторым проще сменить разработчиков софта если вдруг те не могут сделать продукт на заказанной платформе..
4 июл 06, 06:14    [2839144]     Ответить | Цитировать Сообщить модератору
 Re: Простите, накипело.  [new]
c127
Guest
_pgSam_

Дело в том, что в этой базе кроме всего прочего очень хитрым образом ведётся чёрная бугалтерия. Ведётся так, что непосвящённый сможет увидить только белую даже если будет иметь все возможные права. Или зайдёт под нужным пользователем. Муж делал эти фишки на C в виде *.so к Постгрису. Как - не знаю. Сама на C не пишу. Но перенести это на другую СУБД будет практически невозможно. Наверное.

Если он при этом не лазил своими программами в файле БД постгриса или в его ядре, а это вряд ли, то скорее всего принципиальных больших проблем с переносом не будет. В дополнение к тем, которые тут уже обсуждались.

Если же с МССКЛ2000 вдруг обнаружатся проблемы, то Вашему начальству будет предложено за очень небольшие деньги купить еще и МССКЛ2005.
4 июл 06, 06:26    [2839152]     Ответить | Цитировать Сообщить модератору
 Re: Простите, накипело.  [new]
andy st
Member

Откуда:
Сообщений: 899
Gold
Щас пока в try catch Commit/Rollback засунул и просто игнорирую эту ошибку.

пробовал внимательно вчитываться в вторую ссылку из приведенного тобой же запроса в гугль?
там четко написано
support.microsoft.com

This behavior can occur if the data source has encountered a severe error, causing it to roll back the transaction immediately, rather than return control to the caller. As a result, no transaction exists when the Commit or Rollback method is called, and therefore the exception is thrown.

This behavior is by design.

начинаем копать код на предмет косяков
4 июл 06, 06:34    [2839154]     Ответить | Цитировать Сообщить модератору
 Re: Простите, накипело.  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
c127

Если же с МССКЛ2000 вдруг обнаружатся проблемы, то Вашему начальству будет предложено за очень небольшие деньги купить еще и МССКЛ2005.

С каких пор в нашей стране стало обязательным покупть ПО, тем более если есть черная бухгалтерия?
4 июл 06, 08:26    [2839263]     Ответить | Цитировать Сообщить модератору
 Re: Простите, накипело.  [new]
Bless
Member

Откуда:
Сообщений: 159
pkarklin

По последнему пункту ответ корректнее будет выглядеть так:

USE pubs
GO

UPDATE
A
SET
A.au_id = A.au_id
FROM
authors A



Поделитесь, откуда берете информацию!
Из BOL такой синтаксис отнюдь не следует, хотя это запрос работает!
4 июл 06, 09:37    [2839404]     Ответить | Цитировать Сообщить модератору
 Re: Простите, накипело.  [new]
_pgSam_
Guest
c127
_pgSam_

Дело в том, что в этой базе кроме всего прочего очень хитрым образом ведётся чёрная бугалтерия. Ведётся так, что непосвящённый сможет увидить только белую даже если будет иметь все возможные права. Или зайдёт под нужным пользователем. Муж делал эти фишки на C в виде *.so к Постгрису. Как - не знаю. Сама на C не пишу. Но перенести это на другую СУБД будет практически невозможно. Наверное.

Если он при этом не лазил своими программами в файле БД постгриса или в его ядре, а это вряд ли, то скорее всего принципиальных больших проблем с переносом не будет. В дополнение к тем, которые тут уже обсуждались.

Если же с МССКЛ2000 вдруг обнаружатся проблемы, то Вашему начальству будет предложено за очень небольшие деньги купить еще и МССКЛ2005.


Он, вроде, типы данных свои делал на C.
4 июл 06, 09:45    [2839436]     Ответить | Цитировать Сообщить модератору
 Re: Простите, накипело.  [new]
Ручечник
Guest
_pgSam_
Дело в том, что в этой базе кроме всего прочего очень хитрым образом ведётся чёрная бугалтерия. Ведётся так, что непосвящённый сможет увидить только белую даже если будет иметь все возможные права. Или зайдёт под нужным пользователем.


"Кабы при моей работе бабы не нужны были, сроду с ними дел не имел! Языком метут как метлой машут" (с)
4 июл 06, 09:50    [2839451]     Ответить | Цитировать Сообщить модератору
 Re: Простите, накипело.  [new]
SergSuper
Member

Откуда: SPb
Сообщений: 5488
Bless
pkarklin

По последнему пункту ответ корректнее будет выглядеть так:

USE pubs
GO

UPDATE
A
SET
A.au_id = A.au_id
FROM
authors A



Поделитесь, откуда берете информацию!
Из BOL такой синтаксис отнюдь не следует, хотя это запрос работает!

Сомневаюсь что у Вас по-другому написано

UPDATE
Changes existing data in a table.

Syntax
UPDATE
{
table_name WITH ( < table_hint_limited > [ ...n ] )
| view_name
| rowset_function_limited
}
SET
{ column_name = { expression | DEFAULT | NULL }
| @variable = expression
| @variable = column = expression } [ ,...n ]

{ { [ FROM { < table_source > } [ ,...n ] ]

[ WHERE
< search_condition > ] }
|
[ WHERE CURRENT OF
{ { [ GLOBAL ] cursor_name } | cursor_variable_name }
] }
[ OPTION ( < query_hint > [ ,...n ] ) ]

< table_source > ::=
table_name [ [ AS ] table_alias ] [ WITH ( < table_hint > [ ,...n ] ) ]
| view_name [ [ AS ] table_alias ]
| rowset_function [ [ AS ] table_alias ]
| derived_table [ AS ] table_alias [ ( column_alias [ ,...n ] ) ]
| < joined_table >
4 июл 06, 10:09    [2839523]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 [3] 4 5   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить