powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Объясните грамотно почему это не правильно.
51 сообщений из 51, показаны все 3 страниц
Объясните грамотно почему это не правильно.
    #35408812
Фотография Cheerful Calf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кого не затруднит привести грамотные аргументы почему данная схема не правльная?
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35408921
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что это?
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35408951
Алексей Р.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Предположу, что схема не реляционна, есть лишняя (избыточная) связь.
(Если я правильно понимаю "реляционность").
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35408978
Фотография Cheerful Calf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это схема
база проверок врачей (но в принципе это не важно), мне нужен аргумент почему это не правильно.
слева три таблицы , для произвольного количества различный атрибутов по объектам
1) справочник объектов (проверка квалификации, опоздания, жлобы больных). 2) справочник атрибутов (прошёл повышение квалификации, не опаздывает, правильно заполняет карточки) 3) связующий справочник - какие атрибуты какому объекту принадлежат. Справа сами проверки и результаты....
Тут упрощено, но сам подход ясен. Почему он не правильный? Пожалуйста заумные, грамотные фразы
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35409682
nik_x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм...
Повторю вопрос: ой, что это???

Что за нотация, почему не знаю?
IDEF1X (Традиционная) ? - нет
EER ? - нет
EER(1,n) ? - нет
Вороньи лапки ? - нет

Дык, что это?
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35409701
Фотография Cheerful Calf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ааа.. тогда это - сам подход, наброски так сказать, которые можно оформлять хоть в еер хоть в лапки. А что пока не оформлю правильно по какомунить стандарту, смысл никак не уловить? :)
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35409745
nik_x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если напрячь рассудок, и представить, что сия стрелка - реляция 1 ко многим, то получается что-то вроде:

Зачем такая конструкция, многоие к очень многим?
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35409756
Фотография Cheerful Calf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ах, так вы про стрелку.. да, да 1 ко многим.... Вы спрашиваете зачем, а спрашиваю чем это плохо.
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35409779
Фотография Cheerful Calf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только "кольцевая" связь замыкается на табла01 1:М табла04. Пятая не входит.
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35409787
nik_x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheerful Calfах, так вы про стрелку.. да, да 1 ко многим.... Вы спрашиваете зачем, а спрашиваю чем это плохо.

Я просто "на пальцах" или "сырмяжно" пытаюсь растолковать про нормальные формы...
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35409795
Фотография Cheerful Calf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ах вы про НФ... А других аргументов (кроме того что классика это правильно, потому что она правильная) не будет?
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35409840
nik_x
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheerful Calfах вы про НФ... А других аргументов (кроме того что классика это правильно, потому что она правильная) не будет?

Отчего-ж? Говорят англичане научились гланды через жопу вырезать:)
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35409990
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nik_xЕсли напрячь рассудок, и представить, что сия стрелка - реляция 1 ко многим,

Реляция - это таблица. А что вы имеете в виду - ссылка. Foreign key.

С чего вы решили, что схема неправильная ? И к тому же надо знать постановку задачи, чтобы сказать, правильная она или нет. А мы ее не знаем. Никаких явных ляпов здесь вроде бы нет. Можно было бы иметь еще словарь проверяющих и проверяемых, лучше в одной таблице людей, возможно с ролями, поскольку наверняка проверяющих тоже проверяют, и они становятся проверяемыми, хотя точно это знаете только вы сами.
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35410224
Чорный Бада
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если я правильно понимаю тут что-то типа EAV.

По своему печальному опыту - EAV, это, пардон, гамно. Как правильно подобные суперабстрактные и, типа, универсальные модели возникают от (нужное подчеркнуть) нежелания/неумения/невозможности достаточно разобраться в предметной области и разумно определить скоуп проекта. Типа, отличная идея - слепить БД, в которую запихнуть можно всё что угодно. Слепить можно. Работать потом правда с ней нереально.
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35410324
Формально
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
возражений нет, работать будет. А по сути - говно, а не схема.
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35410405
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чорный БадаЕсли я правильно понимаю тут что-то типа EAV
Неправильно понимаете. Hint: попробуйте найти в нарисованном поля "тип значения атрибута", "значение атрибута"...

Безусловно, со временем может вырасти в EAV. Но пока к тому никаких продвижений не видно. Если бы вместо "атрибут" автор употребил слово "критерий", подозреваю, никто и не шелохнулся бы.
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35410410
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheerful CalfКого не затруднит привести грамотные аргументы почему данная схема не правльная?
1. Главный недостаток - в "проверке" фактически теряется информация о проверяемом. "Имя проверяемого" - это не информация, это дерьмо. Проверяемые, как впрочем и проверяющие - это справочник. Который будет активно обрастать атрибутами и связями, например "какого человека какой проверке как часто подвергать".

2. Развязка "многие ко многим" между объектами и атрибутами лишняя. Обычное один ко многим будет куда уместнее. Кроме того, если ты будешь утверждать, что атрибуты различных проверок нередко совпадают, я скажу, что поле "частота проверок в месяц" становится совершенно бредовым.

3. Cхема не поддерживает целостность данных. Так, как нарисовано, "результат проверки" может ссылаться на атрибут объекта1 и проверку объекта2, что явно некорректно.

4. Сущности неудачно названы. Если взять случайного разработчика и сказать: "в схеме есть сущности "проверки" и "объекты проверок". как ты думаешь, в чем их смысл и чем они различаются", мало кто угадает придуманное Вами :) Я бы предложил, например, "Варианты проверок", "Проверяемые критерии", "Факты проверок", "Результаты проверок".

5. У факта проверки напрашивается поле со смыслом "статус". Сейчас, скажем, может быть так, что по какому-то атрибуту нет результата проверки, и непонятно - то ли это означает "нет без комментариев", то ли ошибку, то ли просто данные в процессе ввода.
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35410412
Чорный Бада
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerНеправильно понимаете. Hint: попробуйте найти в нарисованном поля "тип значения атрибута", "значение атрибута"...
Ну почему же. Для каждого обьекта проверки имеется несколько проверок. Каждая проверка заключается в проверке некоторого критерия на "да/нет". Атрибут - это проверяемый в проверке критерий. Его значение - "да" или "нет".
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35410419
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чорный БадаНу почему же.
Потому что сходство формальное, но не фактическое. Такими рассуждениями можно что угодно объявить EAV, например оценки, полученные студентами за экзамены (а что? экзамены - это справочник атрибутов; курсы - это классы; студенты - это объекты; оценки за экзамены - значения атрибутов).

Ключевое отличие EAV от "обычных схем" в том, что в одно поле укладываются разные с точки зрения бизнес-логики значения. В том, что в поле NUM_VALUE может лежать как "расстояние от Земли до Луны", так и "количество листов в тетради". Это не достаточное условие, но необходимое. В данной схеме это необходимое условие не выполняется (по крайней мере, нет признаков того, что выполняется). Критерии - это критерии и есть, справочник. Дальше - проверяющий ставит галочку и может быть пишет примечания, вот и вся бизнес-логика.
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35410424
Чорный Бада
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerКлючевое отличие EAV от "обычных схем" в том, что в одно поле укладываются разные с точки зрения бизнес-логики значения. В том, что в поле NUM_VALUE может лежать как "расстояние от Земли до Луны", так и "количество листов в тетради".
Тут я полностью согласен. И вот тогда наступает ЖОПА
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35410426
Чорный Бада
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В первом приближении у меня получилось бы что-то вроде этого:
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35410435
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Чорный БадаВ первом приближении у меня получилось бы что-то вроде этого:
В первом приближении у меня получилось бы что-то вроде этого:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
SQL> create table CheckCase (CheckCaseID integer not null primary key);

Table created

SQL> create table CheckMeasure (
   2     CheckMeasureID integer not null primary key,
   3     CheckCaseID integer not null references CheckCase (CheckCaseID),
   4     MeasureName varchar2( 100 ) not null,
   5     Description clob);

Table created

SQL> alter table CheckMeasure add unique (CheckMeasureID, CheckCaseID);

Table altered

SQL> create table Person (
   2     PersonID integer not null primary key,
   3     PersonName varchar2( 100 ) not null unique);

Table created

SQL> create table CheckEvent (
   2     CheckEventID integer not null primary key,
   3     CheckCaseID integer not null references CheckCase (CheckCaseID),
   4     PersonID_Checked integer not null references Person (PersonID),
   5     EventDate date not null,
   6     Description clob);

Table created

SQL> alter table CheckEvent add unique (CheckEventID, CheckCaseID);

Table altered

SQL> create table CheckResult (
   2     CheckResultID integer not null primary key,
   3     CheckCaseID integer not null,
   4     CheckEventID integer not null,
   5     CheckMeasureID integer not null,
   6     PersonID_Checking integer not null references Person (PersonID),
   7     Score char( 1 ) not null check (Score in ('Y', 'N')),
   8     Notes clob);

Table created

SQL> alter table CheckResult add foreign key (CheckMeasureID, CheckCaseID)
   2     references CheckMeasure (CheckMeasureID, CheckCaseID);

Table altered

SQL> alter table CheckResult add foreign key (CheckEventID, CheckCaseID)
   2     references CheckEvent (CheckEventID, CheckCaseID);

Table altered
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35410448
Чорный Бада
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
softwarerВ первом приближении у меня получилось бы что-то вроде этого

1) Не очень понятно назначение таблицы CheckCase.

2) вот это ещё мне не очень:
Код: plaintext
1.
2.
create table CheckMeasure (
    CheckMeasureID integer not null primary key,
    CheckCaseID integer not null references CheckCase (CheckCaseID),
и одновременно тут же
Код: plaintext
alter table CheckMeasure add unique (CheckMeasureID, CheckCaseID);
Если тут имеется в виду идентифицирующая связка, то не разумней ли сразу первичным ключом сделать (CheckCaseID, CheckMeasureID)?
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35410456
2 softwarer +0.75 с уточнениями

П1 - Указанный вами пункт 1 не является главным недостатком предложенной схемы.
Т.к. в схеме просто нет сущностей «проверяющий» и «проверяемый» и нет ясного понимания причины их отсутствия, то нет и оснований для выставления этого момента на первое место. Такое его творческое видение предмета, что «проверяемые» с «проверяющими» вовсе не сущности, а просто атрибуты. Составит это проблему для его задачи или нет – предмет правдоподобного, но домысливания.
К недостаткам предложенной схемы это относимо с натяжкой.
Тем более, что превращение их в сущности не составляет формальной проблемы в предложенной схеме.

П2 про излишество N-N – по существу – почти наверно - да.
N-N может оказаться практически неприемлемым при переименовании атрибутов. Но может и не оказаться.

П3. В предложенной схеме это главный недостаток.
Может быть компенсирован
- либо организацией интерфейса пользователя ( не гарантирует от ошибок программиста и администратора БД)
- либо организацией нетривиальных условий проверки целостности c использованием check constraint (если выбранная субд сможет их поддержать) или триггеров ( с тем же условием.).

Либо изменением характера связей между сущностями и перепроектированием сущности [Результаты_проверки].

Так, если изменить связи между [Объекты_проверок] и [Проверки]
И между [Объекты_проверок] и [Справочник_атрибутов_по_объектам]
С неидентифицирующих на идентифицирующие, то использованные в схеме сущности
более-менее естественным образом можно представить так;


[Объекты_Проверок](АйДи, прочие_атрибуты)
PK(АйДи)

[Справочник_Атрибутов](PK,АйДи, прочие_атрибуты)
PK(PK,АйДи)
FK(АйДи) REFERENCES [Объекты_Проверок](АйДи)

[Проверки](PK,АйДи, прочие_атрибуты)
PK(PK,АйДи)
FK(АйДи) REFERENCES [Объекты_Проверок] (АйДи)


[Результаты_проверок](PK,PK_П,АйДи,PK_А, прочие_атрибуты)
PK(PK,PK_П,АйДи)
FK(PK_П,АйДи) REFERENCES [Проверки](PK,АйДи)
FK(PK_А,АйДи) REFERENCES [Справочник_Атрибутов](PK,АйДи)

Использованный переход с идентифицирующим зависимостям позволит явно указать дерево зависимости сущностей - [Справочник_Атрибутов] оказывается явным образом ведомым для сущности [Объекты_Проверок], а [Результаты_проверок] явным образом ведомая для сущности [Проверки]. Дополнительно, такой вариант оформления сущности
[Результаты_проверки] автоматически не даст возможности допустить ошибку связывания строки проверки с атрибутом чужого проверяемого объекта без использования как heck constraint, так и триггеров.
П3 – ключевой в рамках предложенной схемы (если принять характер связей как адекватный предметной области – независимо от справедливости такого принятия, то проблема именно в сущности [Результаты_проверки]).


П4 – вопрос вкуса/стиля

П5 – домысливание задачи за пределы предложенной для выявления недостатков схемы.
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35410802
Фотография Cheerful Calf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Чорный Бада
Это не Тенцер. Им тут и не пахнет. Хотя на первый взгляд сходство с неким подобием модели еав есть.

2 softwarer | сосед. был акцессник. теперь неи

1) Cущность «проверяющий» возможно будет, в данной схеме её не составит труда добавить. Но пока она не на первом месте, это скорее действительно атрибут проверки. В общих чертах, чтобы удовлетворить главное требование заказчика (а это гос. учереждение) - то сущность может быть вообще всего одна - Проверка. Всё остальное пофигу. Главное - была ли проверка, что проверили и соответсвовало ли это некоим подтверждённым требованиям... (утрированно)

2) Ага. Спасибо, доктор, пожалуй именно это меня и беспокоило... Связи М:М тут действительно надо переделывать.

3) Целостностью данных приходиться жертвовать, иначе для каждой проверки (чистоты ёршика в туалете, карточки больного, наличие необходимых лекарств в запасе...) придёться делать отдельную таблицу. Некую поддержку обеспечит сама база (фиребёрд), некую клиент (делфи). В любом случае этот пункт тоже подлежит серьёзной доработке. Опять спасибо.

4) Наименования из картинки (типа АйДи русскими буквами) в базе не будет :)

5) "может быть так, что по какому-то атрибуту нет результата проверки" - исключено
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35411394
ModelR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheerful Calf2 softwarer | сосед. был акцессник. теперь неи

3) Целостностью данных приходиться жертвовать,Дык и за что боремся? Это единственный недостаток, присущий схеме независимо от смысла данных ( в отличие от "Справочник_атрибутов_по_объектам" который может представлять реально полезный ограничитель сочетаний, а может оказаться и надуманным). Cheerful Calf иначе для каждой проверки (чистоты ёршика в туалете, карточки больного, наличие необходимых лекарств в запасе...) придёться делать отдельную таблицу. Нет. Достаточно объявить AК (UK) и FK в соответветсвии со смыслом схемы.
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35411514
Фотография Cheerful Calf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗЫ 2 сосед. был акцессник. теперь неи
А зачем в проверках Объект_проверки_АйДи, если его по вашей схеме всегда можно узнать из справочника_атрибутов по результатам_проверки?

>Дык и за что боремся?
За красоту :)
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35412166
Фотография Cheerful Calf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А будит ли для абстракционных проверок правильная данная схема?
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35412222
Фотография BULK INSERT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheerful CalfА будит ли для абстракционных проверок правильная данная схема?

нет не будет...
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35412242
Фотография Cheerful Calf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А по-мойму будет... Обсудим? Будет потому, что в ней удалены все недостатки указанные для первой схемы. Почему не будет?
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35412306
Фотография BULK INSERT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheerful CalfОбсудим?

четыре таблицы на схеме обсуждать??? хм...

ну-у-у-у...

1 какие именно недостатки предыдущей схемы удалены при создании этой?
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35412317
Фотография Cheerful Calf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Связь М:М (там где она была излишней), целостность результатов с объектами.
ну... тяпница... вечереет... Обсудить 5 таблиц - боюсь уже не успеем
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35412348
Фотография BULK INSERT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheerful CalfСвязь М:М (там где она была излишней), целостность результатов с объектами.
ну... тяпница... вечереет... Обсудить 5 таблиц - боюсь уже не успеем

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

например если у вас 30 врачей 300 санитаров и 10 проверяемых параметров у каждого разных для каждой из групп, вам придется создать 30 одинаковых экземпляров врачей 300 экземпляров санитаров и определить их параметры и ничего не перепутать ... н-е-р-е-а-л-ь-н-о

вместо этого следовало бы создать класс "врач", определить для него 10 свойств, класс "санитар" определить для него 10 свойств

а уж потом создавать экземпляры классов с уже предписанными свойствами и только устанавливать их значения
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35412375
Фотография Cheerful Calf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Батеньки, да как же можно объединить главврача и ёршик из туалета и представить их экземплярами одного класса?! :)
Каждый мой экземпляр (в принципе) является единственным экземпляром класса, а потому нет никакой объединяющей сущности.
Классом являеться Проверка и её экземпляры - проверка врача, проверка чистоты клозета, проверка пожарного щланга...
Насчёт н-е-р-е-а-л-ь-н-о - ну а никто и не говорит, что будет легко :) НО объединение в классы ничего не даст. Или я не понял?
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35412390
Фотография BULK INSERT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheerful CalfБатеньки, да как же можно объединить главврача и ёршик из туалета и представить их экземплярами одного класса?

копец какой-то...

хорош уже бухать - ты бы лучше почитал чтоль чего... я тебе как раз и говорю что это разные классы с разными атрибутами...

разница в том, что ты на 30 экземпляров главврачей будеш создавать по 10 свойств на каждого и на 300 ершиков по 10 свойств на каждого а нужно создать два класса главврачи и ершики, определить их атрибуты (не совпадающие (а может даже не пересекающиеся) множества) по 10 на каждый класс...

пля... бросай ты это дело...
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35412400
Фотография Cheerful Calf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
да ты домысливаешь то, чего на схеме нет и говоришь что это не правильно. Нету ёршиков! Есть Ёршик (один, единственный, неповторимый) и его надо проверить, соответсвует ли он тому, тому и этому. Для этой проверки ёршика есть специальный документ, в котором указано что проверять надо. Другой такой проверки никогда не будет. Для второго ёршика будет другой документ и другая проверка.
зы - справочников проверяющих, адресов, телефонов, приказов и вообще никаких (как и таблиц) не схеме нет, так как они абсолютно не важны по соществу вопроса.
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35412457
Фотография BULK INSERT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheerful Calfда ты домысливаешь то, чего на схеме нет и говоришь что это не правильно.

я говорю что тут ВООБЩЕ нечего обсуждать на твоей схеме...

в твоей схеме каждый атрибут привязан к одному объекту отношением Объект-<Атрибуты , поэтому связь Проверка>-Объект ВООБЩЕ не нужна - нужный объект можно "вытащить" по конкретному проверяемому атрибуту

например атрибут "образование" у тебя всегда будет "Образование <Васи>" или "Образование <Пети>" поэтому связывать "проверку" с "объектом" нет никакого смысла
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35412475
Фотография Cheerful Calf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да.. Получается объект в проверке излишний. За сим и тяпнем.
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35412480
Фотография BULK INSERT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheerful CalfДа.. Получается объект в проверке излишний. За сим и тяпнем.

нет, это объект в атрибутах лишний
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35412489
Фотография Cheerful Calf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почему? перед проверкой атрибуты уже должны быть привязаны к объекту, на то докУмент имееться.
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35412500
Фотография Cheerful Calf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ксатати с Днём рожжденья на эскуэльру. За сим и тяпнем повторно :).
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35412541
Фотография BULK INSERT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheerful CalfКсатати с Днём рожжденья на эскуэльру. За сим и тяпнем повторно :).

спасибо только мой день рождения на SQL ру годами пятью наверное ранее
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35412543
Фотография BULK INSERT
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Inspectors to Inspections = связь не в ту сторону поставил... Sorry
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35412690
Cheerful CalfЗЫ 2 сосед. был акцессник. теперь неи
А зачем в проверках Объект_проверки_АйДи, если его по вашей схеме всегда можно узнать из справочника_атрибутов по результатам_проверки?



Извините – я не понимаю этого вашего вопроса.

АйДи в сущность [Проверка] разместили вы, а не я. Извольте посмотреть свой первый пост с вопросом и убедиться, что это не просто второй атрибут в нарисованной вами
сущности [Проверка], а еще и атрибут значение которого опредляется внешним ключом.
Решать – нужен он там или нет не мне, а правилам, определяющим, что собой представляет сущность [Проверка]. Наличие или отсутствие связи между [Объектами_проверок] и [Проверками] (и, соответственно, наличие или отсутствие атрибута АйДи в сущности [Проверка]) дает логически различные, несовместные (словесные) определения сущности
Я лишь предположил, что вы понимаете эти правила и стараетесь им следовать. Иначе говоря – предполагал, что способны произнести человеческими словами то, что рисуете квадратиками. Поэтому просто следовал тому определению, которое предопределяется вашим первым рисунком для сущности [Проверка].

Cheerful CalfА будит ли для абстракционных проверок правильная данная схема?
Не знаю, кто такие «абстракционные проверки», но ваша вторая картинка сохраняет полностью недостаток, указанный softwarer-ом как пункт 3.

Cheerful CalfДа.. Получается объект в проверке излишний. …
никакой логической цепочки к этому утверждению от утверждения

BULK INSERT...

в твоей схеме каждый атрибут привязан к одному объекту отношением Объект-<Атрибуты , поэтому связь Проверка>-Объект ВООБЩЕ не нужна - нужный объект можно "вытащить" по конкретному проверяемому атрибуту

...
провести нельзя. Нет здесь никакого «поэтому» и ничего не «получается» в отрыве от определения того, что представляет собой [Проверка] и как определяется это понятие.
Пусть нашей предметной областью будет ветеринарная станция и [Проверкой] будет акт определения состояния животных.
Очевидно, что всякого быка можно определить по номеру, выбитому на его копытах и
на этом основании мы не включаем в схему мигрировавшего из [Объектов] в первичный ключ [Проверки] АйДи.
Тогда акт проверки состояния животных может включать в себя множество животных – быков, коз, овец.
Для выделения характеристик одного конкретного животного потребуется фломастер, чтобы отделить характеристики его копыт, рогов и хвоста от характеристик других быков и прочих животных, попавших в заданную проверку, даже если эти характеристики сгруппированы по животным в отчете о проведенной проверке.
В случае, когда правила предметной йобласти именно так трактуют понятие (атомарной и неделимой) проверки, то, несомненно, атрибут АйДи Объекта (животного) не будет включен в сущность Проверка. Однако, это решение никаким образом не связано с фактом того, что нумерованные копыта однозначно определяют конкретного быка.
Наличие или отсутствие АйДи Объекта в Проверке (и, соответственно н- наличие или отсутствие стрелочки-связи между ними) есть собственная характеристика сущности [Проверка], никак не выводимая из свойств [Атрибутов_Объекта.]

Допустим теперь, что правила предметной области звучат диаметрально противоположно – атомарная и неделимая Проверка это всегда набор тестирования свойств одного и только одного объекта.
Для такого случая миграция атрибута Айди из Объекта в Проверку естественным образом может быть использована далее как ограничение набора доступных к тестировании. свойств именно заказанного к тестированию объекта.

Правда состоит в том, что существует уникальная система – Microsoft Access, которая даже в этом случае понимания Проверки сможет обеспечить целостность данных в строках проверки декларативным образом, без миграции АйДи из Объекта в Проверку – путем объявления подходящего Check Constraint для таблицы [Результаты_проверки]
Кроме того, что такое решение окажется плохо переносимо на другие системы ( перенос в любом случае потребует написания программного серверного кода, даже там, где он возможен схожим образом – в виде наложения условия на табличный набор данных),
в целом оно не вполне вписывается в общие правила декомпозиции предметной области на сущности.


Кстати, в свете BULK INSERT...

… поэтому связь Проверка>-Объект ВООБЩЕ не нужна - нужный объект можно "вытащить" по конкретному проверяемому атрибуту

...

особенно познавательно выглядит картинка двумя постами выше - с мигрировавшим в проверку ObjectID и сохраненной возможностью записи в акт проверки быка результата тестирования козьих рогов.
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35412698
Да. Это.
вот еще - совсем забыл - без обид.
копыта - па добраму.
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35416674
Фотография Cheerful Calf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну нимагу же я тут выложить все таблицы, выложил только наиболее беспокоящие. Что касается быков (как класса) - у меня на первой схеме было _имяпроверяемого_ - это соответсвует внешнему ключу в реальной схеме, который ссылается на справочник экземпляров класса (номер копыт). На второй картинке его не стало, так как связи между тремя (или четырьмя, при ответе не видно) таблицами это никак не влияет. А связи плохие, так как образуют "кольцо"...
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35419020
Cheerful CalfНу нимагу же я тут выложить все таблицы, выложил только наиболее беспокоящие. Что касается быков (как класса) - у меня на первой схеме было _имяпроверяемого_ - это соответсвует внешнему ключу в реальной схеме, который ссылается на справочник экземпляров класса (номер копыт). На второй картинке его не стало, так как связи между тремя (или четырьмя, при ответе не видно) таблицами это никак не влияет. А связи плохие, так как образуют "кольцо"...
про _имяпроверяемого_ - понял. Хорошо.


Что до остального - плохо дело.
Нет у меня формального образования и дипломов в области АйТи вообще и проектирования БД в частности.
Может быть поэтому я не понимаю, кто такое кольцо, почему так называется и какими свойствами обладает.

Обе ваши картинки трактуют таблицу [результатов проверки] как связывающую между собой проверки и атрибуты объектов. При этом это чистая M:N связь, позволяющая вписывать в строку результата проверки одного объекта атрибут чужого объекта.
Предположительно, результаты проверки должны быть согласованы выбранным для проверки объектом. Ваша схема не содержит такого явного согласования.
Это было опознано как недостаток именно вашего варианта схемы.
(впрочем, с такими недостатками живут , может быть, почти все системы).

В предложенном вам softwarer-ом и (независимо) мной варианте оформления таблицы результатов показано, как поддержать на уровне ограничений внешнего ключа соглаованность результатов проверки по отношению к проверяемому объекту.

Попробую еще раз описать существо предложенного изменения.
Никакого кольца там нет. Есть, точно так же, как и у вас - две связи со стороной "много" на таблице результатов. Одна связывает результаты с атрибутами, другая с проверками. [Проверка] в смысле "состоит из, содержит в себе" - является главной ведущей таблицей для результатов.
(Т.к. из результатов проверки составляются сами проверки, а не атрибуты.)

В предложенных вам вариантах оформления таблицы результатов, идентификатор проверяемого объекта - это слитый ( объединяющий) и соединяющий два внешних ключа атрибут. Который, участвуя в обоих, не позволяет фактом размещения записи в таблицу результатов связывать между собой проверку одного объекта с атрибутом другого и, таким образом, обеспечивает согласованность двух связей по объекту проверки.
Если смотреть атрибуты на строки результатов, попадающие в состав внешних ключей как на результат join-операции, то атрибут идентификатора объекта - это атрибут, по которому происходит естественное ( в смысле - натуральное) соединение внешних ключей.


Честно говоря, я не знаю - что еще и какими словами сказать на эту тему.
За сим, с вашего позволения, я удалюсь из этого топика.
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35419022
авторЕсли смотреть атрибуты на строки результатов

должно читаться так:

Если смотреть на атрибуты строки результатов
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35419289
Фотография Cheerful Calf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да так то, он так. Всё правильно и понятно. В предложеной софтварер схеме - появляется излишнее поле (второй фк), которое хранить в таблице вовсе нет никакого смысла, так как его можно получить простым селектом. Однако без него не возможна ссылочная целостность, и поле это только для того и дублируется... Вот. А мне хочется и красивым и умным быть :)
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35447323
не удержался
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cheerful CalfДа так то, он так. Всё правильно и понятно. В предложеной софтварер схеме - появляется излишнее поле (второй фк), которое хранить в таблице вовсе нет никакого смысла, так как его можно получить простым селектом. Однако без него не возможна ссылочная целостность, и поле это только для того и дублируется... Вот. А мне хочется и красивым и умным быть :)
книжку по C# листал на досуге, там были правила программирования. и одно из них:

не надо делать быстрее, не надо делать скорее - надо делать понятнее!

потому как программист в отличие от чукчи сейчас читатель а не писатель.
думаю в полной мере это относится и к данному случаю. Делай понятнее)))
...
Рейтинг: 0 / 0
Объясните грамотно почему это не правильно.
    #35447437
Фотография Cheerful Calf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pozdno ne uderzlsia Uze davno vsio zdelano i pridano.
...
Рейтинг: 0 / 0
51 сообщений из 51, показаны все 3 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Объясните грамотно почему это не правильно.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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