Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Нужно ли обеспечивать уникальность атрибутов в базе, а не только в таблице? / 8 сообщений из 8, страница 1 из 1
07.08.2006, 22:30
    #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
07.08.2006, 23:03
    #33904296
AlexTheRaven
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно ли обеспечивать уникальность атрибутов в базе, а не только в таблице?
Ну, если атрибут - ключевой, лично я предпочитаю называть его как во втором случае: тогда удобнее делать внешние ключи.

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

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

А вообще это дело вкуса и соглашения по именованию; важно только, чтобы это соглашение соблюдалось всеми и всегда.
...
Рейтинг: 0 / 0
07.08.2006, 23:18
    #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
07.08.2006, 23:53
    #33904338
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно ли обеспечивать уникальность атрибутов в базе, а не только в таблице?
мне более симпатичен первый вариант, т.к.
1) довольно редко приходится писать имя поля без имени таблицы, а писать имя таблицы дважды подряд (comment.comment_body), имхо, не удобно.
2) чисто технически именование атрибута comment.comment_body не всегда возможно, в частности, в Оракле есть ограничение в 32 символа.
...
Рейтинг: 0 / 0
08.08.2006, 00:21
    #33904353
SergINI
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно ли обеспечивать уникальность атрибутов в базе, а не только в таблице?
Первый вариант даже предпочтителен: кратко и понятно. А для любителей крепко обзывать имена полей существуют представления. В данном случае возникает вопрос: а нафига такие навороты? Хорошо хоть тебе в имя поля не советуют имя базы прописать, прогрfммиста который это поле создал, ФИО матери, которая этого программиста родила ....
...
Рейтинг: 0 / 0
08.08.2006, 04:34
    #33904408
Infernal V. Raven
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Нужно ли обеспечивать уникальность атрибутов в базе, а не только в таблице?
RasimSЕсть определенные правила и соглашения по именованию.Поделитесь ссылкой пожалуйста. Я всегда думал, что это больше рекомендации.

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

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

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


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