|
|
|
Является-ли Количество отдельной сущностью
|
|||
|---|---|---|---|
|
#18+
Имеется сущность Товар, обладающая атрибутом ЕдиницаИзмерения Код: plaintext (Единицаизмерения имеет FK на таблицу с допустимыми названиями единиц измерения) Вроде как имеется нарушение 3НФ, т.к. Единица измерения характеризует Количество, а не сам товар. однако какой смысл в вынесении ее в отдельную сущность ? Каких именно аномалий можно избежать, если сделать так Код: plaintext 1. Теперь Товар.Количество - это ссылка на другую сущность. Что-то не вижу, чем это решение лучше, ведь для Товар = хлеб, кол. = 5, ед.изм = шт и Товар = Книги, кол. = 5, ед. изм. = шт все равно будет 2 отдельные записи, т.е. аномалий изменения данный не может произойти ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2008, 10:35 |
|
||
|
Является-ли Количество отдельной сущностью
|
|||
|---|---|---|---|
|
#18+
вопрос1Что-то не вижу, чем это решение лучше Оно не лучше, оно хуже. Нарушения 3НФ здесь нет, поскольку "характеризует" никак к ЗНФ не относится. Практически "это решение" - это разбиение одной таблицы на две, связанных один к одному. Что с теоретической точки зрения не дает никаких выгод (практические иногда можно усмотреть) но зато обеспечивает геморрой поддержки реального соответствия записей в таблицах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2008, 14:26 |
|
||
|
Является-ли Количество отдельной сущностью
|
|||
|---|---|---|---|
|
#18+
softwarer Нарушения 3НФ здесь нет, поскольку "характеризует" никак к ЗНФ не относится. Сущность не соответствует 3НФ, если неключевой атрибут определяется другим неключевым атрибутом Т.е. неключевые атрибуты не могут описывать неключевые атрибуты, а ЕдиницаИзмерения описывает Количество, разве нет ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2008, 16:12 |
|
||
|
Является-ли Количество отдельной сущностью
|
|||
|---|---|---|---|
|
#18+
Я Вам рекомендую заполнить в Excel или OpenOfficeCalc табличку с тестовыми данными строк на 20. А потом почитать учебник. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2008, 00:04 |
|
||
|
Является-ли Количество отдельной сущностью
|
|||
|---|---|---|---|
|
#18+
apapacyЯ Вам рекомендую заполнить в Excel или OpenOfficeCalc табличку с тестовыми данными строк на 20. А потом почитать учебник. Уважаемый, если вам нечего сказать по теме, просьба не загрязнять топик бессмысленными замечаниями ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2008, 07:26 |
|
||
|
Является-ли Количество отдельной сущностью
|
|||
|---|---|---|---|
|
#18+
вопрос1 Сущность не соответствует 3НФ, если неключевой атрибут определяется другим неключевым атрибутом Т.е. неключевые атрибуты не могут описывать неключевые атрибуты, а ЕдиницаИзмерения описывает Количество, разве нет ?Вообще говоря, нет. Вот если бы для ЕдиницыИзмерения "шт" у Вас однозначно следовало бы Количество = 3, то тогда да. Проблемы могут возникнуть в случае, если для разных ЕдиницИзмерения нужно задавать Количество по разному (использовать другой тип измерения, нечисловой к примеру). Тогда стоит подумать о декомпозиции, только таблиц получится побольше (вроде бы, не проверял). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2008, 08:03 |
|
||
|
Является-ли Количество отдельной сущностью
|
|||
|---|---|---|---|
|
#18+
Павел ВоронцовВообще говоря, нет. Вот если бы для ЕдиницыИзмерения "шт" у Вас однозначно следовало бы Количество = 3, то тогда да. Проблемы могут возникнуть в случае, если для разных ЕдиницИзмерения нужно задавать Количество по разному (использовать другой тип измерения, нечисловой к примеру). вообще-то так и есть :) Штукам будут соответствовать int, а тоннам или килограммам - decimal ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2008, 08:41 |
|
||
|
Является-ли Количество отдельной сущностью
|
|||
|---|---|---|---|
|
#18+
вопрос1вообще-то так и есть :) Штукам будут соответствовать int, а тоннам или килограммам - decimal ...int и decimal - это не страшно. Такое можно контролировать и на уровне приложения (к примеру). Заморачиваться в данном случае с декомпозицией по-моему не стоит. Хуже было бы, если там строковые значения или даты встречались. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2008, 08:52 |
|
||
|
Является-ли Количество отдельной сущностью
|
|||
|---|---|---|---|
|
#18+
Павел Воронцовint и decimal - это не страшно. Такое можно контролировать и на уровне приложения (к примеру). Заморачиваться в данном случае с декомпозицией по-моему не стоит. Хуже было бы, если там строковые значения или даты встречались. ну все-таки значение 2.756 шт книг будет выглядеть нехорошо, и может даже рассматриваться как нарушение целостности. А как собственно декомпозиция решит эти проблемы ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2008, 09:11 |
|
||
|
Является-ли Количество отдельной сущностью
|
|||
|---|---|---|---|
|
#18+
вопрос1А как собственно декомпозиция решит эти проблемы ?Например так: Код: 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2008, 10:00 |
|
||
|
Является-ли Количество отдельной сущностью
|
|||
|---|---|---|---|
|
#18+
Имена констрейнтов там конечно повторяться не должны, это копи-пейст. Ну да разберетесь поди. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2008, 10:05 |
|
||
|
Является-ли Количество отдельной сущностью
|
|||
|---|---|---|---|
|
#18+
Товар(ID int, Название varchar(100), Поставщик int, Количество int, ЕдиницаИзмерения int) не совсем ясно зачем вводиться ID, если ID это ключ по которому можно одназначно найти название то было бы вернее сделать: Товар(ID int, Название varchar(100)) ТоварПоставщик(ID int, Поставщик int, Количество int, ЕдиницаИзмерения int) Ибо у одного названия может быть много поставщиков как и наоборот ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2008, 10:37 |
|
||
|
Является-ли Количество отдельной сущностью
|
|||
|---|---|---|---|
|
#18+
вопрос1Имеется сущность Товар, обладающая атрибутом ЕдиницаИзмерения Код: plaintext Вроде как имеется нарушение 3НФ, т.к. Единица измерения характеризует Количество, а не сам товар. А почему, собственно, Вы решили, что ЕдИзм характеризует не Товар, а Количество? Как раз, по-моему, именно Товар как сущность и характеризуется Единицей Измерения (ведь не будете же Вы мерить сукно литрами, а водку - метрами)! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2008, 10:38 |
|
||
|
Является-ли Количество отдельной сущностью
|
|||
|---|---|---|---|
|
#18+
зы. забыл добавить при таком подходе как советую я сделать потом свойства товара добавлять проще ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2008, 10:39 |
|
||
|
Является-ли Количество отдельной сущностью
|
|||
|---|---|---|---|
|
#18+
СтарыйЧайникА почему, собственно, Вы решили, что ЕдИзм характеризует не Товар, а Количество? Как раз, по-моему, именно Товар как сущность и характеризуется Единицей Измерения (ведь не будете же Вы мерить сукно литрами, а водку - метрами)! ну, насколько я понимаю, ту-же водку можно мерить литрами, бутылками (разной емкости), ящиками, бочками, стаканами, на крайний случай ;-). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2008, 12:33 |
|
||
|
Является-ли Количество отдельной сущностью
|
|||
|---|---|---|---|
|
#18+
Hibernateну, насколько я понимаю, ту-же водку можно мерить литрами, бутылками (разной емкости), ящиками, бочками, стаканами, на крайний случай ;-).бульками еще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2008, 12:43 |
|
||
|
Является-ли Количество отдельной сущностью
|
|||
|---|---|---|---|
|
#18+
Павел ВоронцовА теперь хорошенько подумайте: а оно вам надо, такое строгое разделение? не знаю, нужно подумать :) В общем-то, смысл определенный все-таки в подобном разделении кажется есть ... СтарыйЧайникА почему, собственно, Вы решили, что ЕдИзм характеризует не Товар, а Количество? Как раз, по-моему, именно Товар как сущность и характеризуется Единицей Измерения (ведь не будете же Вы мерить сукно литрами, а водку - метрами) Имхо нет. Вот к примеру возьмем другой пример - цена товара в разных валютах. Например автомобиль Toyota может иметь цену 6000$ или 140000 руб. Очевидно, что вид валюты характеризует количество денег, а ни как не саму тойоту :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2008, 13:04 |
|
||
|
Является-ли Количество отдельной сущностью
|
|||
|---|---|---|---|
|
#18+
Hibernate СтарыйЧайникА почему, собственно, Вы решили, что ЕдИзм характеризует не Товар, а Количество? Как раз, по-моему, именно Товар как сущность и характеризуется Единицей Измерения (ведь не будете же Вы мерить сукно литрами, а водку - метрами)! ну, насколько я понимаю, ту-же водку можно мерить литрами, бутылками (разной емкости), ящиками, бочками, стаканами, на крайний случай ;-). В итоге номенклатура характеризуется очень небольшим конечным перечнем ЕИ и производными от них. Но к количеству это вообще никакого отношения не имеет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2008, 13:05 |
|
||
|
Является-ли Количество отдельной сущностью
|
|||
|---|---|---|---|
|
#18+
вопрос1Имхо нет. Вот к примеру возьмем другой пример - цена товара в разных валютах. Например автомобиль Toyota может иметь цену 6000$ или 140000 руб. Очевидно, что вид валюты характеризует количество денег, а ни как не саму тойоту :) Вы совсем запутались. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2008, 13:06 |
|
||
|
Является-ли Количество отдельной сущностью
|
|||
|---|---|---|---|
|
#18+
вопрос1Имхо нет. Вот к примеру возьмем другой пример - цена товара в разных валютах. Например автомобиль Toyota может иметь цену 6000$ или 140000 руб. Очевидно, что вид валюты характеризует количество денег, а ни как не саму тойоту :)Мнэээ.... Это уже совсем другое. Количество товара и его цена в разных валютах - вещи.... ээээ... сильно разные. То, что структуры данных в результате могут получиться похожие - не повод считать эти два атрибута товара одинаковыми. Подумайте об этом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2008, 13:44 |
|
||
|
Является-ли Количество отдельной сущностью
|
|||
|---|---|---|---|
|
#18+
Павел ВоронцовМнэээ.... Это уже совсем другое. Количество товара и его цена в разных валютах - вещи.... ээээ... сильно разные. То, что структуры данных в результате могут получиться похожие - не повод считать эти два атрибута товара одинаковыми. Подумайте об этом. почему разные ? Как единица измерения характеризует количество сущностей, так и валюта характеризует количество денег. А можете более формально обьяснить, почему все-таки единица измерения (валюта) является характеристикой сущности, а не количества ? А то на мой взгляд, это все-таки характеристика количества. Можно сказать, что сущность (напр. лоток с хлебом) характеризуется некоторой другой сущностью Количество, которая имеет такие характеристики как число и что именно это число обозначает ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2008, 14:33 |
|
||
|
Является-ли Количество отдельной сущностью
|
|||
|---|---|---|---|
|
#18+
например в ООП как раз рекомендуется выносить это в отдельную сущность (К. Ларман) - ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2008, 14:40 |
|
||
|
Является-ли Количество отдельной сущностью
|
|||
|---|---|---|---|
|
#18+
вопрос1А можете более формально обьяснить, почему все-таки единица измерения (валюта) является характеристикой сущности, а не количества ? А то на мой взгляд, это все-таки характеристика количества. Можно сказать, что сущность (напр. лоток с хлебом) характеризуется некоторой другой сущностью Количество, которая имеет такие характеристики как число и что именно это число обозначает ...А Вы сами и ответили на вопрос. Единица измерения обычно является характеристикой именно сущности, то есть характерезует то, что хранится. В данном бизнес-контексте водку измеряют ящиками, доски - кубометрами, а сахар - килограммами. В другом бизнес-контексте - по другому (литры, штуки, мешки к примеру). Но как правило этот атрибут однозначно привязан к сущности и не меняется. Пересчитывать мешки на килограммы не обязательно. Стоимость же в разных валютах - это связанные измерения, их необходимо как правило пересчитывать из одних единиц в другие "на лету", причем с привлечением доп. информации о текущем курсе и пр. То есть в данном случае как раз единица измерения является характеристикой количества, а не сущности. Мне кажется, что и в случае мультивалютного учета будет более правильным хранить все цены в одной валюте и проводить преобразования только в случае крайней необходимости. Реализовывать серьезные системы с мультивалютностью не приходилось, Бог миловал... ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2008, 14:51 |
|
||
|
Является-ли Количество отдельной сущностью
|
|||
|---|---|---|---|
|
#18+
вопрос1например в ООП как раз рекомендуется выносить это в отдельную сущность Не в сущность (в реляционном смысле сущности). Для количества по-хорошему нужен свой домен, свой тип данных; "количество" и "единица измерения количества" - это не два независимых атрибута, а один составной атрибут. В ООП такое понятие моделируется объектом, являющимся членом другого объекта. В СУБД, если она поддерживает объекты или пользовательские типы, можно сделать так же. Однако, это не означает, что при отсутствии других вариантов "составной атрибут" надо выносить в отдельную таблицу. Это означает, что надо моделировать такую ситуацию именно что двумя атрибутами. Проиллюстрировать это проще всего так: как мы понимаем, в декларациях Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. TMyData1 и TMyData2 отличаются исключительно синтаксисом доступа, но ложатся в те же самые байты и обрабатываются тем же самым бинарно кодом. Так и здесь - если синтаксис БД не дает применить первый вариант, пользуемся вторым. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2008, 14:52 |
|
||
|
Является-ли Количество отдельной сущностью
|
|||
|---|---|---|---|
|
#18+
вопрос1почему разные ? Как единица измерения характеризует количество сущностей, так и валюта характеризует количество денег.Если сильно не отвлекатся от примера топикстартера, то количество было бы зависимым от единицы измерения(ЕИ), если бы в любом другом кортеже этой таблице той же самой ЕИ соответствовало бы то же самое количество или наличествовала бы четкая функциональная связь ЕИ->Количество и по ЕИ можно было бы вычислить Количество. Но фактически этой связи на самом деле нет и по данной таблице вы вряд ли сможете ее обнаружить. Таким образом, можно смело считать, что количество и ЕИ на самом деле зависят только от ключа - "Товар.ID". P.S. Я бы даже рискнул сказать, что в данном случае имеет место факт, что данного товара есть (определенное количество в заданных единицах измерения). Т.е., ЕИ и Кол следовало бы рассматривать как один, но составной атрибут. Впрочем, это уже повод для другого обсуждения, IMHO. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.08.2008, 15:02 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35481380&tid=1543621]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
205ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
65ms |
get tp. blocked users: |
1ms |
| others: | 201ms |
| total: | 511ms |

| 0 / 0 |
