Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Есть ли смысл давать собственные названия ограничениям, ключам и тд? / 15 сообщений из 15, страница 1 из 1
25.11.2019, 11:20
    #39893811
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли смысл давать собственные названия ограничениям, ключам и тд?
вот такой код считается приемлемым?
Код: sql
1.
2.
CREATE TABLE [dbo].[map_root] (
    [id]		INT             IDENTITY (1, 1) PRIMARY KEY CLUSTERED NOT NULL, 



был создан ПК:
PK__map_root__3213E83F105E1389
...
Рейтинг: 0 / 0
25.11.2019, 11:28
    #39893817
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли смысл давать собственные названия ограничениям, ключам и тд?
перепишу так:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
CREATE TABLE [dbo].[map_root] (
    [id]		INT             IDENTITY (1, 1) NOT NULL,    
    [host]		VARCHAR (255)   NOT NULL,
    [hash]		VARCHAR (255)   NOT NULL,
    [created]	DATETIME NULL	DEFAULT(GETDATE()),
    CONSTRAINT [PK_map_root] PRIMARY KEY CLUSTERED 
    (
        [id] ASC
    ),
    CONSTRAINT [UQ_map_root] UNIQUE NONCLUSTERED
    (
        [host], [hash]
    )
);
...
Рейтинг: 0 / 0
25.11.2019, 11:57
    #39893846
Ennor Tiegael
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли смысл давать собственные названия ограничениям, ключам и тд?
listtoview,

Смысл имеет. Когда имя объекта заранее известно, с ним проще выполнять нужные действия. Ну там, переименовать, отключить / удалить, свойства изменить.

Пример из личной практики: допустим у вас есть система, которая установлена у ваших клиентов, причем хостится все не в облаке вашими силами, а on premises у них. Вы выпускаете новую версию, в которой нужно, ну скажем, добавить еще одно поле в существующий ключ.

Если имя констрейнта известно и одинаково у всех клиентов, то в change script, который новая версия приложения будет прогонять на клиентской базе при ее апгрейде, можно будет напрямую написать что-то типа (за синтаксис не ручаюсь, но для примера сойдет):
Код: sql
1.
2.
3.
4.
alter table dbo.Records drop constraint [UQ_Records_CreateDate];
go
alter table dbo.Records add constraint [UQ_Records_CreateDate_SomeFieldId] unique (CreateDate, SomeFieldId);
go


Если же уникальный ключ был создан безымянным, то сначала придется попариться и найти именно его имя в метаданных (что в некоторых случаях может быть крайне нетривиальной задачей), после чего выполнять приведенный выше код в динамическом SQL.

Я в свое время написал скрипт, который генерит вызовы sp_rename для переименования всех таких объектов, которые не соответствуют принятому соглашению. Перед сборкой релиза прогоняю скрипт на БД, потом из Visual Studio делаю Schema Compare с проектом базы, подтягиваю изменения в проект и готово. Проще, чем каждый раз руками все это набивать.
...
Рейтинг: 0 / 0
25.11.2019, 11:59
    #39893848
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли смысл давать собственные названия ограничениям, ключам и тд?
listtoview,

Если код (скрипт) генерируется, то да смысл есть.
...
Рейтинг: 0 / 0
25.11.2019, 12:24
    #39893864
Minamoto
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли смысл давать собственные названия ограничениям, ключам и тд?
listtoview,

Ну вот делаете вызов хранимки. И выдает вам ошибку:
"Violation of PRIMARY KEY constraint 'PK_map_root__3213E83F105E1389'"
или
"Violation of PRIMARY KEY constraint 'PK_map_root_host_hash"

Какое сообщение об ошибке вам легче и быстрее будет понять?
...
Рейтинг: 0 / 0
25.11.2019, 12:50
    #39893882
tunknown
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли смысл давать собственные названия ограничениям, ключам и тд?
Ennor Tiegael
Смысл имеет. Когда имя объекта заранее известно, с ним проще выполнять нужные действия. Ну там, переименовать, отключить / удалить, свойства изменить.

Смысл имеет, т.к. существенно проще становится работать с таблицами.

Смысл исчезает если правило не соблюдётся хоть один раз. Наоборот- становится хуже, т.к. содержимое может оказаться противоположным декларации.

Дисциплину соблюдаете- именуете, не соблюдаете- лучше не именуйте.
...
Рейтинг: 0 / 0
25.11.2019, 13:20
    #39893911
iap
iap
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли смысл давать собственные названия ограничениям, ключам и тд?
tunknown
Ennor Tiegael
Смысл имеет. Когда имя объекта заранее известно, с ним проще выполнять нужные действия. Ну там, переименовать, отключить / удалить, свойства изменить.

Смысл имеет, т.к. существенно проще становится работать с таблицами.

Смысл исчезает если правило не соблюдётся хоть один раз. Наоборот- становится хуже, т.к. содержимое может оказаться противоположным декларации.

Дисциплину соблюдаете- именуете, не соблюдаете- лучше не именуйте.
Чего-то накрутили...
Как это наименование объекта делает чего-то там хуже или лучше? Поясните, пожалуйста.
...
Рейтинг: 0 / 0
25.11.2019, 13:22
    #39893912
a_voronin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли смысл давать собственные названия ограничениям, ключам и тд?
iap
tunknown
пропущено...

Смысл имеет, т.к. существенно проще становится работать с таблицами.

Смысл исчезает если правило не соблюдётся хоть один раз. Наоборот- становится хуже, т.к. содержимое может оказаться противоположным декларации.

Дисциплину соблюдаете- именуете, не соблюдаете- лучше не именуйте.
Чего-то накрутили...
Как это наименование объекта делает чего-то там хуже или лучше? Поясните, пожалуйста.


Серверу та похер, че там за IX_8u90890890890890890890890890, а вот у человека в голове бардак.
...
Рейтинг: 0 / 0
25.11.2019, 14:30
    #39893958
Ennor Tiegael
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли смысл давать собственные названия ограничениям, ключам и тд?
tunknown
Смысл исчезает если правило не соблюдётся хоть один раз. Наоборот- становится хуже, т.к. содержимое может оказаться противоположным декларации.

Дисциплину соблюдаете- именуете, не соблюдаете- лучше не именуйте.
Т.е. если хаос возник в одном месте, то надо плодить его как можно больше? Я правильно понимаю?
...
Рейтинг: 0 / 0
25.11.2019, 15:04
    #39893994
tunknown
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли смысл давать собственные названия ограничениям, ключам и тд?
Ennor Tiegael
Т.е. если хаос возник в одном месте, то надо плодить его как можно больше? Я правильно понимаю?
Хаос выражается через тип bit, а не integer.
...
Рейтинг: 0 / 0
25.11.2019, 17:01
    #39894094
Ennor Tiegael
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли смысл давать собственные названия ограничениям, ключам и тд?
tunknown
Ennor Tiegael
Т.е. если хаос возник в одном месте, то надо плодить его как можно больше? Я правильно понимаю?
Хаос выражается через тип bit, а не integer.
Т.е. поправить один случайно проскочивший безымянным констрейнт так же легко и просто, как и 20, и 100, и 5000 оных? Я правильно понимаю?
...
Рейтинг: 0 / 0
25.11.2019, 18:22
    #39894129
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли смысл давать собственные названия ограничениям, ключам и тд?
Ennor Tiegael
tunknown
пропущено...
Хаос выражается через тип bit, а не integer.
Т.е. поправить один случайно проскочивший безымянным констрейнт так же легко и просто, как и 20, и 100, и 5000 оных? Я правильно понимаю?

не так же легко, а одинаково сложно
...
Рейтинг: 0 / 0
25.11.2019, 18:35
    #39894135
alexeyvg
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли смысл давать собственные названия ограничениям, ключам и тд?
listtoview
Ennor TiegaelТ.е. поправить один случайно проскочивший безымянным констрейнт так же легко и просто, как и 20, и 100, и 5000 оных? Я правильно понимаю?

не так же легко, а одинаково сложноМенее сложно, пропорционально количеству.

По такой логике не нужно давать осмысленных названий таблицам и полям, ведь всё равно кто то один раз ошибётся, а поправить название одной таблицы так же сложно, как и 1000 таблиц.
Да и вообще программировать нельзя, ведь обязательно кто то сделает багу, а поправить багу так же сложно, как написать весь текст программы.
...
Рейтинг: 0 / 0
26.11.2019, 11:15
    #39894319
Владислав Колосов
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли смысл давать собственные названия ограничениям, ключам и тд?
Если ТС задает такие вопросы, то о слове "рефакторинг" он даже и не слышал. Всё еще впереди, поздравляю!
...
Рейтинг: 0 / 0
26.11.2019, 11:41
    #39894352
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Есть ли смысл давать собственные названия ограничениям, ключам и тд?
Владислав Колосов
Если ТС задает такие вопросы, то о слове "рефакторинг" он даже и не слышал. Всё еще впереди, поздравляю!

и как мне помешает рефакторингу такая запись?
Код: sql
1.
  [created]	DATETIME NOT NULL	DEFAULT(GETDATE()),
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Есть ли смысл давать собственные названия ограничениям, ключам и тд? / 15 сообщений из 15, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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