|
|
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
Извините за сумбурное описание, проблема простая а как сформулировать - затрудняюсь. Есть такая ситуация (например, учет книг в библиотеке): каждая книга характеризуется например двумя наборами аттрибутов: 1) состояние - со значениями "отличное", "хорошее", "ветхая", "очень плохое" 2) жанр - со значениями "детектив", "н-ф", "документальная" есть скажем таблица "книги" с полями: код хранения(уникальный идентификатор книги) и второе поле - "характеристика книги". И вот в этом поле "характеристика книги" хранятся вперемешку и значения состояния и значения жанра. Я понимаю, что это неправильно, что поле "характеристика книги" должно быть разделено на 2 - "состояние книги" и "жанр", т.е. таблица "книги" должна содержать не 2 колонки, а три - код хранения, состояние книги и жанр книги. И соответственно, должна быть не одна таблица-словарь с возможными значениями, а две - одна для возможных значений состояния и другая для возможных значений жанра. Как это перевести на язык реляционности? Это нарушение какой-то нормальной формы, а какой? Это что-то про то, что аттрибуты должны быть однородными. О том, что "состояние" и "жанр" это разные сущности Я тут как студент, все понимаю а сказать ничего не могу. И самое главное, как это растолковать идиоту-менеджеру проекта под которым я работаю, он в упор не понимает зачем разделять поле "характеристика книги" на два? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 08:13 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
Что именно вам непонятно ? Нужно иметь две ссылки на разные справочники: состояние и жанр. Два отдельных поля. Сложнее, если "жанр" может быть из нескольких значений. Тогда понадобится еще одна таблица(т.н. табличная часть), содержащая ссылку на книгу и на спр.жанра + возможно еще к-л поля (сортировка, комментарий, к.л. признаки да/нет и пр.)... МП видимо полный лох, занимающий чужое место ... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 09:14 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
ХБИ самое главное, как это растолковать идиоту-менеджеру проекта под которым я работаю, он в упор не понимает зачем разделять поле "характеристика книги" на два? Делайте как говорит МП. Он ставит задачи и несет за это ответственность. Ваше дело судя по всему только кодить. Поэтому занимайтесь своим делом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 10:49 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
ХБ Как это перевести на язык реляционности? Это нарушение какой-то нормальной формы, а какой? Нет, это не нарушение нормальной формы, это неправильная классификация сущностей. В результате такой классификации Вы не можете указать для книги и сохранность и жанр, нельзя иметь в базе информацию "книга NNN - детектив в плохом состоянии" - либо "детектив", либо "в плохом состоянии". Вообще говоря, таблица с двумя атрибутами "сохранность" и "жанр" - это тоже неправильно, потому что один из них - это характеристика книги, а другой - характеристика экземпляра книги. Но, возможно, это слишком экстремальное изменение картины мира для менеджера :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 11:20 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
Насколько я помню, Ранганатан разработал свою классификацию двоеточием именно для библиотечных целей. Не хотите ее менеджеру предложить? :) А вот состояние конкретного экземпляра книги действительно лучше вычленить в отдельный атрибут, как выше посоветовали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 14:30 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
Спасибо всем, но я спрашиваю не про это. Я так и думал, что не смогу объяснить "что именно мне не понятно". Во-первых, вот это - "В результате такой классификации Вы не можете указать для книги и сохранность и жанр, нельзя иметь в базе информацию "книга NNN - детектив в плохом состоянии" - либо "детектив", либо "в плохом состоянии" неверно. Очень даже могу. Вот так: код книги характеристика 12345 плохое состояние 12345 детектив т.е. таблица по сути "многие ко многим", и код книги в ней первичным ключом не является. Речь идет о том, что все допустимые значения "характеристика книги" сейчас хранятся в одной таблице. А я понимаю что таких таблиц должно быть две. Я так и думал, что это не ошибка нормализации. Я "чувствую" что при правильной организации таблиц, одна книга _не может_ как в примере вверху иметь одновременно два значения из списка аттрибутов, т.е. не допустимо для одной книги указать одновременно "хорошее состояние" и "плохое состояние" и это правильно. Вот как это назвать по-научному? А текущая структура _позволяет_ иметь множественные записи. Вот в чем заковыка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 18:27 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
Ennor TiegaelНасколько я помню, Ранганатан разработал свою классификацию двоеточием именно для библиотечных целей. Не хотите ее менеджеру предложить? :) А вот состояние конкретного экземпляра книги действительно лучше вычленить в отдельный атрибут, как выше посоветовали. библиотека здесь ни при чем, это только пример для простоты. У меня область совсем другая, описание агрегатов сложного устройства. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 18:38 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
troskin2ХБ А я понимаю что таких таблиц должно быть две. Я так и думал, что это не ошибка нормализации. Я "чувствую" что при правильной организации таблиц, одна книга _не может_ как в примере вверху иметь одновременно два значения из списка аттрибутов, т.е. не допустимо для одной книги указать одновременно "хорошее состояние" и "плохое состояние" и это правильно. Вот как это назвать по-научному? А это не универсальное правило, а зависящее от конкретного справочника. Для некоторых справочников допустимы множественные значения, для некоторых - нет. Какой случай у Вас - кто же знает. Если Вы уверены, что в Вашем случае множественные значения недопустимы, и менеджер с этим согласен - на это и упирайте, "структура плохая, потому что в базу можно внести коллизию". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 19:09 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
Кот Матроскинtroskin2ХБА я понимаю что таких таблиц должно быть две. Я так и думал, что это не ошибка нормализации. Я "чувствую" что при правильной организации таблиц, одна книга _не может_ как в примере вверху иметь одновременно два значения из списка аттрибутов, т.е. не допустимо для одной книги указать одновременно "хорошее состояние" и "плохое состояние" и это правильно. Вот как это назвать по-научному? А это не универсальное правило, а зависящее от конкретного справочника. Для некоторых справочников допустимы множественные значения, для некоторых - нет. Какой случай у Вас - кто же знает. Если Вы уверены, что в Вашем случае множественные значения недопустимы, и менеджер с этим согласен - на это и упирайте, "структура плохая, потому что в базу можно внести коллизию". И опять я плохо объясняю...значит, вопрос действительно не простой. давайте попробую в последний раз по-другому. Речь идет о группировке допустимых значений поля по признаку однородности. Т.е. само название поля должно быть всего лишь названием группы допустимых значений. А эти самые значения должны группироваться по признаку...по какому?..по как бы "однородности". Типа, цвет, вес, цена, размер и т.д. Т.е. есть группа значений описывающих жанр. Тогда и поле должно называться "жанр книги". Другая группа описывает состояние изношенности. Тогда нужно другое поле, названное "состояние". А когда одно название "характеристика книги" использует две независимых группы значений, то это плохо. Плохо, хотя и вроде бы не вызывает data inconsistency. Я чувствую что крайним проявлением такого подхода является печально известная структура EAV. Когда одно поле под названием скажем "товар" имеет неограниченное количество неструктурированых допустимых значений. Структура правильная с точки зрения реляционности, но...плохая. Это вопрос о том, как, имея произвольный набор аттрибутов объекта, выделить из них "сущности", т.е. группы значений которые должны храниться _в отдельных_ таблицах. Т.е. описывая человека аттрибутами "Иванов", "слесарь", "алкоголик" мы должны использовать 3 таблицы - "Фамилия", "профессия", "хобби", а не одну - "аттрибуты человека". Это пример явных различий, а по какому принципу выявлять различия более тонкие? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 19:45 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
ХБЯ понимаю, что это неправильно, что поле "характеристика книги" должно быть разделено на 2 - "состояние книги" и "жанр", т.е. таблица "книги" должна содержать не 2 колонки, а три - код хранения, состояние книги и жанр книги. Совершенно не обязательно. Так как у вас сейчас - это вполне рабочий вариант. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 21:23 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
ХБСтруктура правильная с точки зрения реляционности, но...плохая. Ага, основной её недостаток это то, что порог вхождения слишком высок. Криворуким разработчикам не справиться. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 21:24 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
ХБКот Матроскинtroskin2пропущено... А это не универсальное правило, а зависящее от конкретного справочника. Для некоторых справочников допустимы множественные значения, для некоторых - нет. Какой случай у Вас - кто же знает. Если Вы уверены, что в Вашем случае множественные значения недопустимы, и менеджер с этим согласен - на это и упирайте, "структура плохая, потому что в базу можно внести коллизию". И опять я плохо объясняю...значит, вопрос действительно не простой. давайте попробую в последний раз по-другому. Речь идет о группировке допустимых значений поля по признаку однородности. Т.е. само название поля должно быть всего лишь названием группы допустимых значений. А эти самые значения должны группироваться по признаку...по какому?..по как бы "однородности". Типа, цвет, вес, цена, размер и т.д. Т.е. есть группа значений описывающих жанр. Тогда и поле должно называться "жанр книги". Другая группа описывает состояние изношенности. Тогда нужно другое поле, названное "состояние". А когда одно название "характеристика книги" использует две независимых группы значений, то это плохо. Плохо, хотя и вроде бы не вызывает data inconsistency. Я чувствую что крайним проявлением такого подхода является печально известная структура EAV. Когда одно поле под названием скажем "товар" имеет неограниченное количество неструктурированых допустимых значений. Структура правильная с точки зрения реляционности, но...плохая. Это вопрос о том, как, имея произвольный набор аттрибутов объекта, выделить из них "сущности", т.е. группы значений которые должны храниться _в отдельных_ таблицах. Т.е. описывая человека аттрибутами "Иванов", "слесарь", "алкоголик" мы должны использовать 3 таблицы - "Фамилия", "профессия", "хобби", а не одну - "аттрибуты человека". Это пример явных различий, а по какому принципу выявлять различия более тонкие? А зачем? Отсутствие этих более тонких различий как-то мешает работе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 21:25 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovХБСтруктура правильная с точки зрения реляционности, но...плохая. Ага, основной её недостаток это то, что порог вхождения слишком высок. Криворуким разработчикам не справиться. а зачем вы мне хамите? только потому что вы из России? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 21:26 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
Хамлю? Я просто констатирую факт, что EAV - сложная структура, требующая определённого уровня подготовки от разработчика БД и приложения. Криворуким нубам не справиться. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 21:38 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovХамлю? Я просто констатирую факт, что EAV - сложная структура, требующая определённого уровня подготовки от разработчика БД и приложения. Криворуким нубам не справиться. да-да, я понял, вспомнил, извините. Для определенного типа людей такая речь - норма. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 21:41 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
skyANAХБпропущено... И опять я плохо объясняю...значит, вопрос действительно не простой. давайте попробую в последний раз по-другому. Речь идет о группировке допустимых значений поля по признаку однородности. Т.е. само название поля должно быть всего лишь названием группы допустимых значений. А эти самые значения должны группироваться по признаку...по какому?..по как бы "однородности". Типа, цвет, вес, цена, размер и т.д. Т.е. есть группа значений описывающих жанр. Тогда и поле должно называться "жанр книги". Другая группа описывает состояние изношенности. Тогда нужно другое поле, названное "состояние". А когда одно название "характеристика книги" использует две независимых группы значений, то это плохо. Плохо, хотя и вроде бы не вызывает data inconsistency. Я чувствую что крайним проявлением такого подхода является печально известная структура EAV. Когда одно поле под названием скажем "товар" имеет неограниченное количество неструктурированых допустимых значений. Структура правильная с точки зрения реляционности, но...плохая. Это вопрос о том, как, имея произвольный набор аттрибутов объекта, выделить из них "сущности", т.е. группы значений которые должны храниться _в отдельных_ таблицах. Т.е. описывая человека аттрибутами "Иванов", "слесарь", "алкоголик" мы должны использовать 3 таблицы - "Фамилия", "профессия", "хобби", а не одну - "аттрибуты человека". Это пример явных различий, а по какому принципу выявлять различия более тонкие? А зачем? Отсутствие этих более тонких различий как-то мешает работе? чтобы ответить, придется раскрывать специфику. мигрирую приложение MS ACCESS в Oracle. На одном скрине под названием General Description поле AUX_COMPRESSOR_COND со значениями из поп-листа Basic,Rewind,Qualified. Поле берут из таблицы General_Description На другом скрине под названием Left Side Equipment поле AUX_COMPRESSOR_COND со значениями из поп-листа Good,Fair,Poor,Damaged. Поле берут из таблицы Left_Side_Equipment Физически это один и тот же агрегат, какой-то вспомогательный компрессор. Я делаю (увы) преобразование многих "горизонтальных" таблиц где каждое такое поле - это отдельная колонка в одну вертикальную, тот самый EAV, c колонками element_name и element_value_id. Почему - не обсуждается, потому что эта структура используется уже 20 лет в большом приложении. Если я создам один элемент под названием AUX_COMPRESSOR_COND и для него в таблице element_values создам 7 допустимых значений - Basic,Rewind,Qualified,Good,Fair,Poor,Damaged, то как я смогу различить, какие из этих 7 значений должны появляться в поп-листе на первом скрине, а какие - на втором? Скрины мне тоже надо воспроизводить. В исходном MS ACCESS не мудрствуя лукаво поп-листы просто hardcoded. Т.е. нет вообще таблицы element_values. Т.е. очевидно, что нужно создавать 2 разных элемента - напр, AUX_COMPRESSOR_COND со значениями Good,Fair,Poor,Damaged и AUX_COMPRESSOR_STATUS со значениями Basic,Rewind,Qualified. Тогда на первом скрине будет размещен один элемент со своими значениями в поп-листе, на другом скрине - другой элемент со своими значениями. Менеджер говорит - название элемента одно, свалить все значения в кучу, показывать все их на обоих поп-листах и пусть пользователь сам разбирается, на каком экране какие значения присваивать. Вот это я называют "му**к", но объяснить не удаётся, потому что он индус и заботится только о прикрытии своей ж. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 21:59 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
ХБЕсли я создам один элемент под названием AUX_COMPRESSOR_COND и для него в таблице element_values создам 7 допустимых значений - Basic,Rewind,Qualified,Good,Fair,Poor,Damaged, то как я смогу различить, какие из этих 7 значений должны появляться в поп-листе на первом скрине, а какие - на втором? Добавишь ещё одно поле element_type и, соответственно, справочник типов элементов. В комбо-бокс будешь добавлять только элементы определённого типа. В чём проблем-то?.. Posted via ActualForum NNTP Server 1.5 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 22:05 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
Dimitry SibiryakovХБЕсли я создам один элемент под названием AUX_COMPRESSOR_COND и для него в таблице element_values создам 7 допустимых значений - Basic,Rewind,Qualified,Good,Fair,Poor,Damaged, то как я смогу различить, какие из этих 7 значений должны появляться в поп-листе на первом скрине, а какие - на втором? Добавишь ещё одно поле element_type и, соответственно, справочник типов элементов. В комбо-бокс будешь добавлять только элементы определённого типа. В чём проблем-то?.. "котлеты с рисом, тефтели с картошкой. Менять нельзя!" Структуру таблиц менять нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 22:13 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинХБКак это перевести на язык реляционности? Это нарушение какой-то нормальной формы, а какой? Нет, это не нарушение нормальной формы, это неправильная классификация сущностей. В результате такой классификации Вы не можете указать для книги и сохранность и жанр, нельзя иметь в базе информацию "книга NNN - детектив в плохом состоянии" - либо "детектив", либо "в плохом состоянии". Вообще говоря, таблица с двумя атрибутами "сохранность" и "жанр" - это тоже неправильно, потому что один из них - это характеристика книги, а другой - характеристика экземпляра книги. Но, возможно, это слишком экстремальное изменение картины мира для менеджера :) все книги в библиотеке - экземпляры :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 22:42 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
ViPRosКот Матроскинпропущено... Нет, это не нарушение нормальной формы, это неправильная классификация сущностей. В результате такой классификации Вы не можете указать для книги и сохранность и жанр, нельзя иметь в базе информацию "книга NNN - детектив в плохом состоянии" - либо "детектив", либо "в плохом состоянии". Вообще говоря, таблица с двумя атрибутами "сохранность" и "жанр" - это тоже неправильно, потому что один из них - это характеристика книги, а другой - характеристика экземпляра книги. Но, возможно, это слишком экстремальное изменение картины мира для менеджера :) все книги в библиотеке - экземпляры :) ребяты, ну не цепляйтесь, это просто был пример из головы для упрощения. Реальная задача парой постов выше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 23:02 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
ХБ, ну просто воспроизведи и все (каждый скрин = классификатор, в котором жестко заданы значения элементов такого типа) немного бла, бла... "детектив", "ветхий", "прибыльный" ... понятны почти всем, а "жанр" "физического состояния", "доходность" ... не особо (люди не "жанр" ищут, а "детектив", не "физическое состояние", а "новый") в каждой области есть некоторый устойчивый набор характеристик, которые безо всякой типизации определяет состояние объекта когда надо оценить вещь быстро и более менее качественно по некоторым важным характеристикам - для покупки, утилизации, ремонта... допустим тех же Компрессоров, то указанных характеристик хватает за глаза и незачем вводит дополнительные абстакции ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.10.2016, 23:57 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
ХБskyANAпропущено... А зачем? Отсутствие этих более тонких различий как-то мешает работе? чтобы ответить, придется раскрывать специфику. мигрирую приложение MS ACCESS в Oracle. На одном скрине под названием General Description поле AUX_COMPRESSOR_COND со значениями из поп-листа Basic,Rewind,Qualified. Поле берут из таблицы General_Description На другом скрине под названием Left Side Equipment поле AUX_COMPRESSOR_COND со значениями из поп-листа Good,Fair,Poor,Damaged. Поле берут из таблицы Left_Side_Equipment Физически это один и тот же агрегат, какой-то вспомогательный компрессор. Я делаю (увы) преобразование многих "горизонтальных" таблиц где каждое такое поле - это отдельная колонка в одну вертикальную, тот самый EAV, c колонками element_name и element_value_id. Почему - не обсуждается, потому что эта структура используется уже 20 лет в большом приложении. Если я создам один элемент под названием AUX_COMPRESSOR_COND и для него в таблице element_values создам 7 допустимых значений - Basic,Rewind,Qualified,Good,Fair,Poor,Damaged, то как я смогу различить, какие из этих 7 значений должны появляться в поп-листе на первом скрине, а какие - на втором? Скрины мне тоже надо воспроизводить. В исходном MS ACCESS не мудрствуя лукаво поп-листы просто hardcoded. Т.е. нет вообще таблицы element_values. Т.е. очевидно, что нужно создавать 2 разных элемента - напр, AUX_COMPRESSOR_COND со значениями Good,Fair,Poor,Damaged и AUX_COMPRESSOR_STATUS со значениями Basic,Rewind,Qualified. Тогда на первом скрине будет размещен один элемент со своими значениями в поп-листе, на другом скрине - другой элемент со своими значениями. Менеджер говорит - название элемента одно, свалить все значения в кучу, показывать все их на обоих поп-листах и пусть пользователь сам разбирается, на каком экране какие значения присваивать. Вот это я называют "му**к", но объяснить не удаётся, потому что он индус и заботится только о прикрытии своей ж. Так всё-таки кто, или что пострадает? С одной стороны Ваши сомнения, с другой 20 лет уже используется в большом приложении. Если не получается обосновать, то может Ваш обжекшн не валиден? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2016, 03:17 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
skyANA, перечитайте мой пост о real case. Напрягитесь, попытайтесь понять. А в прочем, фиг с вами. Не напрягайтесь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2016, 04:47 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
ХБ, кейс твой нормально сделан в прошлой системе если этих "компрессоров" не много и не предвидится, что их станет много, то нефиг менять подход а на реляционность и т.д. - насрать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2016, 06:23 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
ХБskyANA, перечитайте мой пост о real case. Напрягитесь, попытайтесь понять. А в прочем, фиг с вами. Не напрягайтесь. Таки что надо понять, помимо того, что все 7 значений появятся в поп-листе и на первом, и на втором скрине? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2016, 07:45 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
ХБЯ делаю (увы) преобразование многих "горизонтальных" таблиц где каждое такое поле - это отдельная колонка в одну вертикальную, тот самый EAV, c колонками element_name и element_value_id. Почему - не обсуждается, потому что эта структура используется уже 20 лет в большом приложении. Если я создам один элемент под названием AUX_COMPRESSOR_COND и для него в таблице element_values создам 7 допустимых значений - Basic,Rewind,Qualified,Good,Fair,Poor,Damaged, то как я смогу различить, какие из этих 7 значений должны появляться в поп-листе на первом скрине, а какие - на втором? Скрины мне тоже надо воспроизводить. В исходном MS ACCESS не мудрствуя лукаво поп-листы просто hardcoded. Т.е. нет вообще таблицы element_values. Т.е. очевидно, что нужно создавать 2 разных элемента - напр, AUX_COMPRESSOR_COND со значениями Good,Fair,Poor,Damaged и AUX_COMPRESSOR_STATUS со значениями Basic,Rewind,Qualified. Тогда на первом скрине будет размещен один элемент со своими значениями в поп-листе, на другом скрине - другой элемент со своими значениями. Менеджер говорит - название элемента одно, свалить все значения в кучу, показывать все их на обоих поп-листах и пусть пользователь сам разбирается, на каком экране какие значения присваивать. Вот это я называют "му**к", но объяснить не удаётся, потому что он индус и заботится только о прикрытии своей ж. А потом везде при переносе кода старого приложения, где используется старое поле, Вам придется по контексту догадываться, какой новый элемент туда подставлять? Если структуру таблицы-приемника, как Вы говорите, менять нельзя - решение менеджера не такое плохое, оно сводит риски именно переноса (т.е. того, за что Вы с ним отвечаете) к минимуму. Ну создает проблемы пользователям, ну что делать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2016, 09:40 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
Кот МатроскинХБЯ делаю (увы) преобразование многих "горизонтальных" таблиц где каждое такое поле - это отдельная колонка в одну вертикальную, тот самый EAV, c колонками element_name и element_value_id. Почему - не обсуждается, потому что эта структура используется уже 20 лет в большом приложении. Если я создам один элемент под названием AUX_COMPRESSOR_COND и для него в таблице element_values создам 7 допустимых значений - Basic,Rewind,Qualified,Good,Fair,Poor,Damaged, то как я смогу различить, какие из этих 7 значений должны появляться в поп-листе на первом скрине, а какие - на втором? Скрины мне тоже надо воспроизводить. В исходном MS ACCESS не мудрствуя лукаво поп-листы просто hardcoded. Т.е. нет вообще таблицы element_values. Т.е. очевидно, что нужно создавать 2 разных элемента - напр, AUX_COMPRESSOR_COND со значениями Good,Fair,Poor,Damaged и AUX_COMPRESSOR_STATUS со значениями Basic,Rewind,Qualified. Тогда на первом скрине будет размещен один элемент со своими значениями в поп-листе, на другом скрине - другой элемент со своими значениями. Менеджер говорит - название элемента одно, свалить все значения в кучу, показывать все их на обоих поп-листах и пусть пользователь сам разбирается, на каком экране какие значения присваивать. Вот это я называют "му**к", но объяснить не удаётся, потому что он индус и заботится только о прикрытии своей ж. решение менеджера не такое плохое, оно сводит риски именно переноса (т.е. того, за что Вы с ним отвечаете) к минимуму. Ну создает проблемы пользователям, ну что делать :) Вот за это я и ненавижу таких недоумков-менеджеров. Ему насрать что получиться приложение, с которым невозможно работать. Он не понимает, что мы работаем - для пользователей, а не для того чтобы отчитаться перед начальством. И вы, кстати, с ним тоже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.10.2016, 23:49 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
ХБКот Матроскинпропущено... решение менеджера не такое плохое, оно сводит риски именно переноса (т.е. того, за что Вы с ним отвечаете) к минимуму. Ну создает проблемы пользователям, ну что делать :)Вот за это я и ненавижу таких недоумков-менеджеров. Ему насрать что получиться приложение, с которым невозможно работать. Он не понимает, что мы работаем - для пользователей, а не для того чтобы отчитаться перед начальством. И вы, кстати, с ним тоже. Escalate? Должен же где-то быть представитель пользователя, который поймет, что такие семь шапок из овцы ему не нужны. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2016, 11:47 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
Ennor TiegaelХБпропущено... Вот за это я и ненавижу таких недоумков-менеджеров. Ему насрать что получиться приложение, с которым невозможно работать. Он не понимает, что мы работаем - для пользователей, а не для того чтобы отчитаться перед начальством. И вы, кстати, с ним тоже. Escalate? Должен же где-то быть представитель пользователя, который поймет, что такие семь шапок из овцы ему не нужны. Блин,как у вас все просто, как по писаному. Представьте, позиция пользователя - "мне вполне нравится то уёбище приложение с которым я работаю 20 лет и делайте что хотите но так чтобы мне не пришлось тратить время на переучивание". Вот и получается, что единственный в этой цепочке кому не пох - это азм несчастный, потому что я ненавижу когда мне стыдно за приложения, которые я сделал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.10.2016, 21:36 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
ХБ, Ну, если обезьяна заказчик хочет такой банан, то лучше им дать именно его. Подход, изложенный VIPRos'ом, на самом деле не так уж кошмарен и вполне имеет право на жизнь. Иначе гугл вообще не возник бы никогда, например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2016, 11:15 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
ХБпозиция пользователя - "мне вполне нравится то уёбище приложение с которым я работаю 20 лет и делайте что хотите но так чтобы мне не пришлось тратить время на переучивание". Это вполне серьезный аргумент, и его достаточно, чтобы сделать так, как хочет пользователь. Дорастет до поиска по категориям - спокойно переделаете. В конце концов, большая часть современной IT-индустрии сделана из костылей обратной совместимости - хардверной, программной и моральной. Многие хотели переписать все нафиг по-правильному, и даже написали непревзойденную (на то время) OS/2, но где она теперь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2016, 11:38 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
ХБDimitry Sibiryakovпропущено... Добавишь ещё одно поле element_type и, соответственно, справочник типов элементов. В комбо-бокс будешь добавлять только элементы определённого типа. В чём проблем-то?.. "котлеты с рисом, тефтели с картошкой. Менять нельзя!" Структуру таблиц менять нельзя. Честно говоря не понял какую струтуру таблиц менять нельзя. Ты же сам писал, что эначения из AUX_COMPRESSOR_COND в переделываемой версии хранились в коде программы безо всяких таблицы element_values. Ты же сам добавляешь эту таблицу. Почему ты изменить её не можешь? Не понимаю. P.S. А так-то, конечно Сибиряков тебе написал единственно верный вариант. Ну если ты не хочешь чтоб это поле называлось element_type назови его number_screen или code_screen. Как тебе удобнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2016, 14:10 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
ХБПредставьте, позиция пользователя - "мне вполне нравится то уёбище приложение с которым я работаю 20 лет и делайте что хотите но так чтобы мне не пришлось тратить время на переучивание". И именно по этой причине на первом скрине должны быть свои названия, на втором - свои. Ибо если поставить все семь названий в один список, то пользователю придётся переучиваться - уметь мысленно отсекать не используемые для данного скрина пункты. Это не является аргументом в споре с менеджером? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2016, 14:13 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
Mr.FontaineХБПредставьте, позиция пользователя - "мне вполне нравится то уёбище приложение с которым я работаю 20 лет и делайте что хотите но так чтобы мне не пришлось тратить время на переучивание". И именно по этой причине на первом скрине должны быть свои названия, на втором - свои. Ибо если поставить все семь названий в один список, то пользователю придётся переучиваться - уметь мысленно отсекать не используемые для данного скрина пункты. Это не является аргументом в споре с менеджером? Наконец-то, спасибо за понимание. Нет, не является, он заявляет: не надо переусложнять, у нас мало времени. Но в общем, никакого спора нет. Единственное его положительное качество - он в принципе понимает что он ничего не понимает, и если разраб упёрся - значит, поспорить для выпендрёжа а потом пусть разраб делает как знает. А не сделает вовремя (а "вовремя" берётся с потолка) - вот тогда все свалить на разраба. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2016, 19:03 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
Mr.FontaineХБпропущено... "котлеты с рисом, тефтели с картошкой. Менять нельзя!" Структуру таблиц менять нельзя. Честно говоря не понял какую струтуру таблиц менять нельзя. Ты же сам писал, что эначения из AUX_COMPRESSOR_COND в переделываемой версии хранились в коде программы безо всяких таблицы element_values. Ты же сам добавляешь эту таблицу. Почему ты изменить её не можешь? Не понимаю. Я не добавляю эту таблицу. Она есть в БД, куда я мигрирую MS ACCESS. Я же писал - в Access все данные хранятся в большом количестве горизонтальных таблиц, одна колонка - один элемент. Т.е. AUX_COMPRESSOR_COND это колонка в одной из таблиц. В target database используется EAV, т.е. таблиц только 3 - ELEMENTS (element_id, element_name), ELEMENT_VALUES(element_id, value_id, value) и сводная UNIT_INFO(unit_id, element_id, value_id) где unit_id - идентификатор устройства (скажем, паровоза) которому принадлежит данный набор элементов. Вот структуру этих трех таблиц менять нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.10.2016, 19:12 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
ХБКот Матроскинпропущено... решение менеджера не такое плохое, оно сводит риски именно переноса (т.е. того, за что Вы с ним отвечаете) к минимуму. Ну создает проблемы пользователям, ну что делать :) Вот за это я и ненавижу таких недоумков-менеджеров. Ему насрать что получиться приложение, с которым невозможно работать. Он не понимает, что мы работаем - для пользователей, а не для того чтобы отчитаться перед начальством. И вы, кстати, с ним тоже. Если Вы понимаете что с приложением невозможно будет работать, то высскажите своё возражение (tension) по поводу принятого решения и приведите обоснование. В чём проблема-то? Или Вам просто кажется, что с приложением невозможно будет работать? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.10.2016, 16:04 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
Как это перевести на язык реляционности? Это нарушение какой-то нормальной формы, а какой? Это что-то про то, что аттрибуты должны быть однородными. О том, что "состояние" и "жанр" это разные сущности Я тут как студент, все понимаю а сказать ничего не могу. это нарушение 1 ой нормальной формы. И самое главное, как это растолковать идиоту-менеджеру проекта под которым я работаю, он в упор не понимает зачем разделять поле "характеристика книги" на два? растолковывать не нужно, таких нужно увольнять. нарушает два правила : - лезет не в свое дело, говорит "как" сделать а не "что" - не имеет нужного образования, безграмотен. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2016, 11:03 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
MasterZiv, кроме всего прочего, тебе надо более детально проработать предметную область, так, например, жанров у книг - может не быть (не публицистика) - может быть несколько (фантастика и детектив и т п.) ну и все такое прочее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2016, 11:07 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
ХБ, кроме того у тебя не различается книга и её экземпляр. жанр - атрибут книги. состояние - экземпляра. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2016, 11:08 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
MasterZivХБ, кроме того у тебя не различается книга и её экземпляр. жанр - атрибут книги. состояние - экземпляра. кроме того, прочитай для разнообразия посты. С книгами - упрощенный пример из головы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.10.2016, 17:34 |
|
||
|
общий вопрос - однородность аттрибутов
|
|||
|---|---|---|---|
|
#18+
Ennor TiegaelНу, если обезьяна заказчик хочет такой банан, то лучше им дать именно его. Подход (...) имеет право на жизнь. Существует такая тенденция, что базы данных со временем приобретают свою собственную ценность, независимую от приложения, для которого они первоначально разрабатывались. Разработчик БД должен понимать свою ответственность, (перед будущими поколениями, да-да), и изначально закладывать в структуру БД ту модель предметной области, которую считает правильной, которая будет недвусмысленной, полной, целостной, неизбыточной и непротиворечивой. Разработчик БД ни в коем случае не должен отступать от своих "твёрдых принципов" - он работает на будущее. В случае ТС, это означает, что для книги нужны два атрибута - состояние и жанр; это подсказывает нам "здравый смысл": допустимые значения каждого из этих атрибутов различаются по единственному классификационному признаку. Объединение этих значений в один атрибут "характеристика", согласитесь, неумно)). Попробуйте сформулировать признак классификации для такого объединённого атрибута. И, да, насчёт обезьяны вы правы. Если обезьяна хочет видеть состояние и жанр книги в одном списке, почему бы не предоставить ей такой "взгляд" на предметную область. Никакого противоречия здесь нет - данные будут храниться правильно, (в двух атрибутах), а отображаться так, как желает пользователь. Конечно, при этом возрастает сложность клиентского приложения, которое должно "улавливать", что хочет ввести пользователь, и правильно раскладывать вводимые данные по табличкам, (это может оказаться нетривиальным), но это самый разумный способ примирить "правильную БД" с "обезьяной". Всё ИМХО.)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.10.2016, 09:41 |
|
||
|
|

start [/forum/topic.php?all=1&fid=32&tid=1540270]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
145ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
72ms |
get tp. blocked users: |
2ms |
| others: | 12ms |
| total: | 273ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...