powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Нужно ли обеспечивать уникальность атрибутов в базе, а не только в таблице?
8 сообщений из 8, страница 1 из 1
Нужно ли обеспечивать уникальность атрибутов в базе, а не только в таблице?
    #33904257
Vetal
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет!

Сотрудник утверждает, что атрибуты должны быть уникальны в пределах всей базы, а не только таблицы.

Например, он утверждает, что вот это вот плохо:
Код: plaintext
1.
2.
3.
4.
5.
6.
create table document(
  identifier char( 12 ),
  body blob( 5000000 ));

create table comment(
  ID int,
  body varchar( 3500 ));
потому что атрибут body не уникален в рамках базы данных. Он говорит, что это разные по смыслу атрибуты, поэтому они должны по разному называться в инфологической модели данных. Например, document_body и comment_body. И правильное определение таблиц было бы таким:
Код: plaintext
1.
2.
3.
4.
5.
6.
create table document(
  identifier char( 12 ),
  document_body blob( 5000000 ));

create table comment(
  ID int,
  comment_body varchar( 3500 ));

Как вы считаете, действительно ли является красивым стилем обеспечивать уникальность атрибутов в рамках базы данных? Если да, то обьясните, пожалуйста, почему?

Всем заранее спасибо!
...
Рейтинг: 0 / 0
Нужно ли обеспечивать уникальность атрибутов в базе, а не только в таблице?
    #33904296
AlexTheRaven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, если атрибут - ключевой, лично я предпочитаю называть его как во втором случае: тогда удобнее делать внешние ключи.

Гипотетический пример:
--таблица "документы": documents, синтетический ключ document_id;
--таблица "товары": goods, синтетический ключ - good_id, внешний ключ - document_id.

Если атрибут неключевой, называю его как в первом случае: точечную нотацию придумали не зря. Хотя если возникает желание сделать в разных таблицах поля с похожими названиями - это повод задуматься, а не лежит ли одна сущность в двух разных таблицах.

А вообще это дело вкуса и соглашения по именованию; важно только, чтобы это соглашение соблюдалось всеми и всегда.
...
Рейтинг: 0 / 0
Нужно ли обеспечивать уникальность атрибутов в базе, а не только в таблице?
    #33904301
RasimS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VetalВсем привет!

Сотрудник утверждает, что атрибуты должны быть уникальны в пределах всей базы, а не только таблицы.

Например, он утверждает, что вот это вот плохо:
Код: plaintext
1.
2.
3.
4.
5.
6.
create table document(
  identifier char( 12 ),
  body blob( 5000000 ));

create table comment(
  ID int,
  body varchar( 3500 ));
потому что атрибут body не уникален в рамках базы данных. Он говорит, что это разные по смыслу атрибуты, поэтому они должны по разному называться в инфологической модели данных. Например, document_body и comment_body. И правильное определение таблиц было бы таким:
Код: plaintext
1.
2.
3.
4.
5.
6.
create table document(
  identifier char( 12 ),
  document_body blob( 5000000 ));

create table comment(
  ID int,
  comment_body varchar( 3500 ));

Как вы считаете, действительно ли является красивым стилем обеспечивать уникальность атрибутов в рамках базы данных? Если да, то обьясните, пожалуйста, почему?

Всем заранее спасибо!
Есть определенные правила и соглашения по именованию. Соблюдение этих правил это уже второй вопрос. Мое мнение, что второй вариант правильней и по всем соглашениям удобен. Другое дело, что в некоторых ситуациях удобнее как-то по другому решить данный вопрос
...
Рейтинг: 0 / 0
Нужно ли обеспечивать уникальность атрибутов в базе, а не только в таблице?
    #33904338
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мне более симпатичен первый вариант, т.к.
1) довольно редко приходится писать имя поля без имени таблицы, а писать имя таблицы дважды подряд (comment.comment_body), имхо, не удобно.
2) чисто технически именование атрибута comment.comment_body не всегда возможно, в частности, в Оракле есть ограничение в 32 символа.
...
Рейтинг: 0 / 0
Нужно ли обеспечивать уникальность атрибутов в базе, а не только в таблице?
    #33904353
SergINI
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первый вариант даже предпочтителен: кратко и понятно. А для любителей крепко обзывать имена полей существуют представления. В данном случае возникает вопрос: а нафига такие навороты? Хорошо хоть тебе в имя поля не советуют имя базы прописать, прогрfммиста который это поле создал, ФИО матери, которая этого программиста родила ....
...
Рейтинг: 0 / 0
Нужно ли обеспечивать уникальность атрибутов в базе, а не только в таблице?
    #33904408
Фотография Infernal V. Raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RasimSЕсть определенные правила и соглашения по именованию.Поделитесь ссылкой пожалуйста. Я всегда думал, что это больше рекомендации.

Я за первый вариант, действительно, если сущность атрибута так и называется, почему бы не оставить это название. Как уже было сказано, при Join таблиц все равно лучше расставить алиасы таблиц и пересечения не произойдет. Да и вообще-то такие таблицы редко пересекаются.
...
Рейтинг: 0 / 0
Нужно ли обеспечивать уникальность атрибутов в базе, а не только в таблице?
    #33904715
bas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Infernal V. Raven RasimSЕсть определенные правила и соглашения по именованию.Поделитесь ссылкой пожалуйста. Я всегда думал, что это больше рекомендации.

Поищи по форуму, была большая дискуссия по этому поводу.
...
Рейтинг: 0 / 0
Нужно ли обеспечивать уникальность атрибутов в базе, а не только в таблице?
    #33904743
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VetalСотрудник утверждает, что атрибуты должны быть уникальны в пределах всей базы, а не только таблицы.
Совершенно справедливо сказано, что это вопрос соглашений внутри вашей рабочей группы. Разумеется, можно поднять большой холивар на тему "почему должно быть именно так или именно иначе", но стоит ли?

Лично я придерживаюсь смешанного подхода. С моей точки зрения, имена атрибутов не должны вносить "путаницы в умы", то есть по атрибуту должно быть достаточно ясно, что именно в нем лежит. В качестве критерия могу сказать так: если по смыслу задачи возможно выделение этих атрибутов в отдельную таблицу, куда пойдут ссылки из всех мест использования атрибута - вполне естественно иметь для этого атрибута одинаковые имена.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Нужно ли обеспечивать уникальность атрибутов в базе, а не только в таблице?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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