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

Откуда:
Сообщений: 2
Мне один вроде как авторитетный специалист сказал, что они только мешают, так я в растерянности, нужны они или нет?
Спасибо.
12 июн 13, 17:01    [14424958]     Ответить | Цитировать Сообщить модератору
 Re: Скажите, а обязательно нужно делать связи между таблицами?  [new]
SDAG
Member

Откуда:
Сообщений: 27
BaHbka1980,

Нужны
12 июн 13, 17:10    [14424977]     Ответить | Цитировать Сообщить модератору
 Re: Скажите, а обязательно нужно делать связи между таблицами?  [new]
контекст контекстович
Guest
BaHbka1980,

а в каком контексте он это сказал?
12 июн 13, 17:13    [14424984]     Ответить | Цитировать Сообщить модератору
 Re: Скажите, а обязательно нужно делать связи между таблицами?  [new]
BaHbka1980
Member

Откуда:
Сообщений: 2
контекст контекстович
BaHbka1980,

а в каком контексте он это сказал?

Говорит что из-за них все тормозит и если что случается с базой то ее очень трудно спасти, типа того.
12 июн 13, 17:16    [14424990]     Ответить | Цитировать Сообщить модератору
 Re: Скажите, а обязательно нужно делать связи между таблицами?  [new]
X-Cite
Member

Откуда: Минск
Сообщений: 1840
BaHbka1980
контекст контекстович
BaHbka1980,

а в каком контексте он это сказал?

Говорит что из-за них все тормозит и если что случается с базой то ее очень трудно спасти, типа того.

А если их не делать, то в базе потом оказываются кривые данные
12 июн 13, 17:17    [14424995]     Ответить | Цитировать Сообщить модератору
 Re: Скажите, а обязательно нужно делать связи между таблицами?  [new]
invm
Member

Откуда: Москва
Сообщений: 9842
BaHbka1980, если сей специалист не имел в виду какой-то определенный контекст, то нифига он не специалист.
FK просто инструмент. Нужно понимать как он работает, для чего нужен и его недостатки. А использовать этот инструмент или нет, зависит от задачи.
12 июн 13, 17:24    [14425010]     Ответить | Цитировать Сообщить модератору
 Re: Скажите, а обязательно нужно делать связи между таблицами?  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
X-Cite
А если их не делать, то в базе потом оказываются кривые данные
Если их не делать то ещё и планы кривые и всё жутко тормозит.
12 июн 13, 18:08    [14425067]     Ответить | Цитировать Сообщить модератору
 Re: Скажите, а обязательно нужно делать связи между таблицами?  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
BaHbka1980
Мне один вроде как авторитетный специалист сказал, что они только мешают, так я в растерянности, нужны они или нет?
Что вам нужно сделать обязательно, так это сразварота ипануть его ногой. И никогда не называйте сия быдлокодера "специалистом".

80% проектов это жутко тормозящие комбайны в которых дофига мелких так называемых "оптимизаций" как сие "безFKшность", хотя архитектура полное говно.
Проектов у которых можно убрать FK можно перечислить по пальцам ... одной руки.
12 июн 13, 18:17    [14425082]     Ответить | Цитировать Сообщить модератору
 Re: Скажите, а обязательно нужно делать связи между таблицами?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Mnior
X-Cite
А если их не делать, то в базе потом оказываются кривые данные
Если их не делать то ещё и планы кривые и всё жутко тормозит.
Щорт, а почему у нас планы не кривые, и ничего не тормозит? Что мы делаем не так?
12 июн 13, 19:18    [14425176]     Ответить | Цитировать Сообщить модератору
 Re: Скажите, а обязательно нужно делать связи между таблицами?  [new]
MasterZiv
Member

Откуда: Питер
Сообщений: 34705
BaHbka1980,

Делать их не обязательно.
Но с ними жить в БД на порядок безопаснее, спокойнее.
12 июн 13, 20:15    [14425305]     Ответить | Цитировать Сообщить модератору
 Re: Скажите, а обязательно нужно делать связи между таблицами?  [new]
Владимир Затуливетер
Member

Откуда:
Сообщений: 427
Еще добавлю к вышесказанному что:
Разбираться в базах в которых нет связей гораздо сложнее.
12 июн 13, 20:46    [14425373]     Ответить | Цитировать Сообщить модератору
 Re: Скажите, а обязательно нужно делать связи между таблицами?  [new]
Goffman
Member

Откуда: с Урала...
Сообщений: 262
BaHbka1980,

FK обеспечивают ссылочную целостность, без них придется заниматься этим вопросом самостоятельно. Только сможете ли вы так же надежно обеспечить ссылочную целостность как это сделает СУБД? И главное зачем?
Насчет тормозов это полная ерунда, FK конечно могут немного замедлить вставку данных, но это скажется только на высоконагруженных проектах, где данные поступают с высокой скоростью в режиме реального времени.
12 июн 13, 22:16    [14425608]     Ответить | Цитировать Сообщить модератору
 Re: Скажите, а обязательно нужно делать связи между таблицами?  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
Гавриленко Сергей Алексеевич
Щорт, а почему у нас планы не кривые, и ничего не тормозит? Что мы делаем не так?
Ну, я загнул один палец.

А у вас бизнес логики на сервере много или чертовски много? Не думаю что много.
А для не сложных вещей оракакл лучше справляется. IMXO. А он как раз вот для говнокодеров "авторитетных специалистов" создавался.
И да, у вас вьюх не много.
12 июн 13, 23:35    [14425784]     Ответить | Цитировать Сообщить модератору
 Re: Скажите, а обязательно нужно делать связи между таблицами?  [new]
buser
Member

Откуда: Санкт-Петербург
Сообщений: 4539
Гавриленко Сергей Алексеевич
Mnior
пропущено...
Если их не делать то ещё и планы кривые и всё жутко тормозит.
Щорт, а почему у нас планы не кривые, и ничего не тормозит? Что мы делаем не так?

Я то же в растерянности... Mnior, объяснитесь!
12 июн 13, 23:57    [14425819]     Ответить | Цитировать Сообщить модератору
 Re: Скажите, а обязательно нужно делать связи между таблицами?  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Mnior
А у вас бизнес логики на сервере много или чертовски много? Не думаю что много.
Не, не много. Она вся там. И кроме сервера толком ничего нет.
Mnior
И да, у вас вьюх не много.
Это да, немного. Как раз с вьюхами планы и страдают без форинкеев.
12 июн 13, 23:59    [14425827]     Ответить | Цитировать Сообщить модератору
 Re: Скажите, а обязательно нужно делать связи между таблицами?  [new]
kain111
Member

Откуда:
Сообщений: 227
в ФК есть плюсы и минусы.
+ Это целостность данных средствами СУБД
- Это действительно некоторое замедление вставки данных. поскольку при вставке в таблицу фактов идет проверка поля на котором есть ФК для соответствия значения справочному, т.е. по сути лишний подзапрос.
1-е нужны в основном админам БД и прочим людям которые в будущем будут поддерживать или развивать решение. В системе с ФК намного проще разобраться, неговоря уже о красивых диаграммах.
С точки зрения производительности объективно ФК все же замедляют вставку. КАк всегда нужен баланс между ускорением работы и сложности поддержки приложения.
13 июн 13, 09:45    [14426422]     Ответить | Цитировать Сообщить модератору
 Re: Скажите, а обязательно нужно делать связи между таблицами?  [new]
_djХомяГ
Guest
Как пример - в Диасофт Нет ни связей ни кластерных индексов Отстойно
13 июн 13, 09:57    [14426490]     Ответить | Цитировать Сообщить модератору
 Re: Скажите, а обязательно нужно делать связи между таблицами?  [new]
angel_zar
Member

Откуда: Барнаул
Сообщений: 902
kain111
С точки зрения производительности объективно ФК все же замедляют вставку. КАк всегда нужен баланс между ускорением работы и сложности поддержки приложения.


Но за целостностью все равно придется следить, пусть это будет делаться хоть с помощью процедур или тригеров, накладные расходы все равно будут.
13 июн 13, 09:59    [14426499]     Ответить | Цитировать Сообщить модератору
 Re: Скажите, а обязательно нужно делать связи между таблицами?  [new]
Скажите плиз
Guest
Прошу прощение, возможно не совсем по теме) но коли тема зашла про ключи хочу спросить вас и про индексы:)
К примеру, таблица Работников, огромная таблица на >100тыс. строк
работник_ИД , ФИО, год рождения, город рождния, образование, отдел_ИД
-
1023, Конопаткин Александр Сергеевич, 1961, Высшее, 4
-
работник_ИД - первичный ключ
отдел_ИД - внешний ключ
существуют кластерные и не кластерные индексы
так понимаю кластерный индекс это и есть первичный ключ, а некластерный индекс не обязателен. правильно ли или целесобразно ли создавать некластерные индексы на всю оставшуюсю таблицу для ускорения той же самой выборки к примеру по году рождения и образованию, городу? или он создается автоматически. И если так можно сделать или делается автоматически, какой индекс будет у внешнего ключа (кластерный/некластерный)?
13 июн 13, 10:11    [14426551]     Ответить | Цитировать Сообщить модератору
 Re: Скажите, а обязательно нужно делать связи между таблицами?  [new]
angel_zar
Member

Откуда: Барнаул
Сообщений: 902
Автоматом не создаются.
Индексы, это грань, которую надо соблюдать, для чтения индекс вредным быть не может, а вот для DML, он сказывается на производительности.
13 июн 13, 10:35    [14426668]     Ответить | Цитировать Сообщить модератору
 Re: Скажите, а обязательно нужно делать связи между таблицами?  [new]
sphinx_mv
Member [заблокирован]

Откуда:
Сообщений: 1672
kain111
С точки зрения производительности объективно ФК все же замедляют вставку. КАк всегда нужен баланс между ускорением работы и сложности поддержки приложения.
ОБЪЕКТИВНО внешние ключи никакого непосредственного влияния на вставкуобновление) данных не оказывают. Они выполняют контроль ограничений ссылочной целостности данных в базе - это несколько "более другая" часть процесса, которая должна присутствовать (в том или ином виде) в любой вменяемой базе данных.

Ожидать, что личная гениальность позводит какому-нибудь "супер-разработчику поверх SQL-сервера написать что-то хотя бы соизмеримое с тем, что уже имеется внутри движка сервера - это не смешно... Даже если это ОЧЕНЬ гениальный разработчик... Хотя, IMHO, действительно гениальный разработчик на такое пойдет только под угрозой расстрела.
13 июн 13, 10:37    [14426676]     Ответить | Цитировать Сообщить модератору
 Re: Скажите, а обязательно нужно делать связи между таблицами?  [new]
Паганель
Member

Откуда: Винница
Сообщений: 22550
Скажите плиз
так понимаю кластерный индекс это и есть первичный ключ, а некластерный индекс не обязателен
брррр

https://www.sql.ru/articles/mssql/03013101indexes.shtml
13 июн 13, 10:37    [14426680]     Ответить | Цитировать Сообщить модератору
 Re: Скажите, а обязательно нужно делать связи между таблицами?  [new]
Скажите плиз
Guest
Паганель
Скажите плиз
так понимаю кластерный индекс это и есть первичный ключ, а некластерный индекс не обязателен
брррр

https://www.sql.ru/articles/mssql/03013101indexes.shtml


я к тому что когда содаем первичный ключ в таблице, ему присваивается автоматически кластерный индекс, который может быть только единственным в таблице. Соответственно оставшиеся столбцы наши без индексов, вот и вопрос нужно ли им присваивать индексы.
читал я эту литературу, да вот не все так гладко понял, вот и заполняю пробелы, по средствам обращения к вам, господа, надеюсь на вашу лояльность.)
13 июн 13, 10:48    [14426732]     Ответить | Цитировать Сообщить модератору
 Re: Скажите, а обязательно нужно делать связи между таблицами?  [new]
_djХомяГ
Guest
Ему по умолчанию присваивается CLUSTERED если не прописывается иного
13 июн 13, 10:55    [14426783]     Ответить | Цитировать Сообщить модератору
 Re: Скажите, а обязательно нужно делать связи между таблицами?  [new]
tpg
Member

Откуда: Novosibirsk
Сообщений: 23902
Скажите плиз,

у вас что-то с терминологией... А говорите, что литературу читали...
К примеру, как можно присвоить столбцам индекс?

Сообщение было отредактировано: 13 июн 13, 10:58
13 июн 13, 10:57    [14426802]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2 3 4 5 6   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить