Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 [5] 6   вперед  Ctrl      все
 Re: Таблица без Primary Key  [new]
-2-
Member

Откуда:
Сообщений: 15330
RA\/EN
Ну, добавим простое требование - определить, находился ли в момент времени X сотрудник на территории. Тут уже без UK/PK тяжко будет.
Это требование накладывает бизнес-ограничение на пересекаемость интервалов приход-ухода, но не на event_id.
24 авг 10, 15:46    [9316320]     Ответить | Цитировать Сообщить модератору
 Re: Таблица без Primary Key  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18343
RA\/EN
Ну, добавим простое требование - определить, находился ли в момент времени X сотрудник на территории. Тут уже без UK/PK тяжко будет.
Отсутсвие такого требования, которое ты можешь предположить - недоработка анализа, и не есть оправдание программиста, из фактических данных на ровном месте сделавшего помойку


Поясни:
- почему сложно без PK?
- какие атрибуты предложишь как кандидаты в ключ?
- где видишь помойку и почему программист должен изобретать бизнес-требования?
24 авг 10, 15:46    [9316322]     Ответить | Цитировать Сообщить модератору
 Re: Таблица без Primary Key  [new]
брадобрей
Member

Откуда:
Сообщений: 4696
вот вам:
В узелковой письменности Инков — кипу в I—II тысячелетии н. э., применялись в том числе аналоги первичных ключей[1]
24 авг 10, 15:46    [9316325]     Ответить | Цитировать Сообщить модератору
 Re: Таблица без Primary Key  [new]
-2-
Member

Откуда:
Сообщений: 15330
брадобрей,

узелок_number() over(order by сколько_веревочке_не_виться)
24 авг 10, 15:47    [9316345]     Ответить | Цитировать Сообщить модератору
 Re: Таблица без Primary Key  [new]
ы!
Guest
RA\/EN

Ну, добавим простое требование - определить, находился ли в момент времени X сотрудник на территории. Тут уже без UK/PK тяжко будет.
Отсутсвие такого требования, которое ты можешь предположить - недоработка анализа, и не есть оправдание программиста, из фактических данных на ровном месте сделавшего помойку

+1
Можно придумать множество простых требований, которые впоследствии, при таком построении системы, будет решать на порядок сложнее. И отсутствие этих требований в момент начала проектирования и разработки впоследствии может сильно осложнить задачу. То есть, как результат - убогая расширяемость системы.
(До кучи, учёт зональных проходов, когда сначала проходят внешний периметр,потом внутренний, а уж потом могут попасть в кладовку со спиртом).
24 авг 10, 15:57    [9316458]     Ответить | Цитировать Сообщить модератору
 Re: Таблица без Primary Key  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18343
ы!

+1
Можно придумать множество простых требований

К вам те же вопросы что и к Константину - раз уж впряглись - попробуйте вразумительно пояснить свою позицию :)
24 авг 10, 15:59    [9316488]     Ответить | Цитировать Сообщить модератору
 Re: Таблица без Primary Key  [new]
mmar
Member

Откуда: -)
Сообщений: 391
andrey_anonymous,
ну ок, а если нужно будет ссылаться на данное событие каким-то образом? (Bfink уже писал о подобной ситуации, можно еще пример привести с редактированием записей постфактум).
andrey_anonymous

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

"изобретать" должен бизнес-аналитик, дабы избавить программиста от болезненного редизайна приложения (я не говорю о самоуправстве, но клиенты часто не знают что им надо до первой беты, а потом начинается рефакторинг)
24 авг 10, 16:18    [9316680]     Ответить | Цитировать Сообщить модератору
 Re: Таблица без Primary Key  [new]
Не серафим
Guest
nodir_azam
Здравствуйте,
будучи разработчиком на MS SQL, для меня неприемлемо создание таблицы без первичного ключа.
Можно-ли создавать таблица в Oracle таблицы без первичных ключей?
Вот таким образом, когда есть таблица customers
CREATE TABLE Event
(
	CustomerID        NUMBER(10) NOT NULL,
	EventDescription  VARCHAR(1000) NOT NULL,
	EventDate         DATE NOT NULL,
	EventIsRead       CHAR(1) NOT NULL,
	EventIsPermanent  CHAR(1) NOT NULL,
	EventSubject      VARCHAR(32),
	EventSubjectID    NUMBER(12)
)
 

где CustomerID FK

В MS Sql для небольших таблиц до 256К(зависит от дисковой системы) не рекомендуется создавать индексы.
ЗЫ Уникальность можно обеспечивать не только за счет PK
24 авг 10, 16:22    [9316723]     Ответить | Цитировать Сообщить модератору
 Re: Таблица без Primary Key  [new]
ы!
Guest
andrey_anonymous

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

Попробую вразумительно.
Любое изменение бизнес-требований при котором необходимо учитывать "проход" как сущность приведет к непредсказуемым переделкам системы.
Пример с зонами я уже привел, когда в некоторых случаях необходимо строить дерево проходов, что при отсутствии первичного ключа будет несколько напряжно.
По поводу почему программист должен изобретать бизнес-требования - вопрос философский и зависит по большей части от организации в которой вы работаете. К сожалению, в современных реалиях, отдельно работающего постановщика задач, который к тому же адекватно работает, можно встретить далеко не всегда.
Как-то так...
24 авг 10, 16:22    [9316728]     Ответить | Цитировать Сообщить модератору
 Re: Таблица без Primary Key  [new]
RA\/EN
Member

Откуда:
Сообщений: 3658
andrey_anonymous
RA\/EN
Ну, добавим простое требование - определить, находился ли в момент времени X сотрудник на территории. Тут уже без UK/PK тяжко будет.
Отсутсвие такого требования, которое ты можешь предположить - недоработка анализа, и не есть оправдание программиста, из фактических данных на ровном месте сделавшего помойку


Поясни:
- почему сложно без PK?
- какие атрибуты предложишь как кандидаты в ключ?
- где видишь помойку и почему программист должен изобретать бизнес-требования?

1. PK/UK, но, т.к. атрибуты из следующего пункта нотнулл, то эквивалентно.
2. ЫД карточки, момент прохода с точностью оборудования в UTC
3. Чудесным образом у нас теперь есть последовательность проходов по карточке, гарантированно не содержащая дублей. А дубль по "входу-выходу" - это, извините, в такой системе уже "а хз куда он делся".
24 авг 10, 16:22    [9316731]     Ответить | Цитировать Сообщить модератору
 Re: Таблица без Primary Key  [new]
Этанол Эталонович
Member

Откуда: Водкозажопск
Сообщений: 253
Серафимный Шестикрыл
вопросец
Серафимный Шестикрыл,
а что хочется исправить-то?


ДНК у дизайнера.

Любая сущность хранения без установленных правил уникальности (если она действительно
хоть что-то стоит с точки зрения бизнес-процесса) - источник заразы всяческих issues и
chalanges для SL-команд. Простой пример из жизни - быдлокодер захардкодил ID-шник в логике, а testing team это профакапил в силу отсутствия unique constraint. И через месяц опосля релиза
бизнес залез по своим бизнес-надобностям в табличку - и ох..л. А заодно и support.
Хм... То есть я - быдлокодер с кривой ДНК?

Ну вот, например, лабал я по-быдлокодерски базейку, где несколько таблиц были без PK, ибо PK в Oracle обеспечивается индексом + Not Null по столбцам, входящим в PK. А там были и Null в столбцах (где не хватало данных), и в PK надо было включать такое число столбцов (как правило с типами varchar2(дохера)), что ORA-01450 и мама не горюй.

Сама быдлокодерская база:
http://spectr-w3.snz.ru/
Список докторов наук, для которых быдлокодер (последний в списке) сделал говнобазу
http://adsabs.harvard.edu/abs/2002AIPC..636..253F
Говнобаза пользуется успехом в своем кругу говнодокторов
http://www.google.ru/search?hl=ru&newwindow=1&q=spectr-w3&aq=f&aqi=&aql=&oq=&gs_rfai=

Пойду, нахер, убьюсь об стену :)
24 авг 10, 16:35    [9316849]     Ответить | Цитировать Сообщить модератору
 Re: Таблица без Primary Key  [new]
Этанол Эталонович
Member

Откуда: Водкозажопск
Сообщений: 253
Серафимный Шестикрыл
отсутствие бизнес-правил

Серафимный Шестикрыл
твоей бзнес-логики

Ну что ты заладил - бизнес, бизнес :)
Не все в этом мире деньгами меряется. Есть еще и на-у-ка ;-)
24 авг 10, 16:45    [9316931]     Ответить | Цитировать Сообщить модератору
 Re: Таблица без Primary Key  [new]
andrey_anonymous
Member

Откуда: Москва
Сообщений: 18343
RA\/EN
- почему сложно без PK?
- какие атрибуты предложишь как кандидаты в ключ?
- где видишь помойку и почему программист должен изобретать бизнес-требования?

1. PK/UK, но, т.к. атрибуты из следующего пункта нотнулл, то эквивалентно.
2. ЫД карточки, момент прохода с точностью оборудования в UTC
3. Чудесным образом у нас теперь есть последовательность проходов по карточке, гарантированно не содержащая дублей. А дубль по "входу-выходу" - это, извините, в такой системе уже "а хз куда он делся".[/quot]

1) это был ответ на какой вопрос?
2) чудесный дизайн - включить timestamp в PK - это безусловно сильный ход, порадовал :) :) :)
Принято как ответ на вопрос 2.
3) в "таких системах" (с опросом датчиков) есть другая проблема - потеря первички, дубляж как раз маловероятен. Впрочем, указанный PK и от "дубляжа" не особо спасает - by design.

Ответов на вопросы 1,3 - не получено.
24 авг 10, 16:47    [9316961]     Ответить | Цитировать Сообщить модератору
 Re: Таблица без Primary Key  [new]
nodir_azam
Member

Откуда: Москва
Сообщений: 98
Не серафим,

таблица будет большая...
24 авг 10, 16:50    [9316996]     Ответить | Цитировать Сообщить модератору
 Re: Таблица без Primary Key  [new]
вопросец
Guest
RA\/EN
andrey_anonymous
RA\/EN
Ну, добавим простое требование - определить, находился ли в момент времени X сотрудник на территории. Тут уже без UK/PK тяжко будет.
Отсутсвие такого требования, которое ты можешь предположить - недоработка анализа, и не есть оправдание программиста, из фактических данных на ровном месте сделавшего помойку


Поясни:
- почему сложно без PK?
- какие атрибуты предложишь как кандидаты в ключ?
- где видишь помойку и почему программист должен изобретать бизнес-требования?

1. PK/UK, но, т.к. атрибуты из следующего пункта нотнулл, то эквивалентно.
2. ЫД карточки, момент прохода с точностью оборудования в UTC
3. Чудесным образом у нас теперь есть последовательность проходов по карточке, гарантированно не содержащая дублей. А дубль по "входу-выходу" - это, извините, в такой системе уже "а хз куда он делся".



а поможет ли в данном случае ук именно на эту пару решить проблему "а хз куда он делся"

предположим по ошибке прибора пришло два евента:

id_card, t, in
id_card, t, out

t - одинаково (искуственный тест или ошибка проливать прибора).

получаем вставится, in, но ук не даст вставить out из за нарушения уникальности. тогда следующая вставка даст in.

получим последовательность ..., in, in, out,...

куда он делся.

тут или ук еще и на признак распространить или оставить как есть.
24 авг 10, 16:51    [9317001]     Ответить | Цитировать Сообщить модератору
 Re: Таблица без Primary Key  [new]
-2-
Member

Откуда:
Сообщений: 15330
Этанол Эталонович
Ну что ты заладил - бизнес, бизнес :)
lingvo.yandex.ru
business ['bɪznɪs]
сущ.
1)
а) дело, занятие; работа
...

2)
а) бизнес, предпринимательская деятельность; торговля, коммерция
На первом месте "дело", и "коммерция" где-то сильно после.

В случае информационных систем "бизнес" также используется в сочетании -аналитика, -требования,... и означает формализацию некоего процесса безотносительно его измеряемости деньгами.
24 авг 10, 16:52    [9317009]     Ответить | Цитировать Сообщить модератору
 Re: Таблица без Primary Key  [new]
вопросец
Guest
и маловероятны дубляжи по времени на турникетах.

Андрей уже впринципе опередил :).

с трубы пишу извиняюсь если где не читабельно .
24 авг 10, 16:56    [9317053]     Ответить | Цитировать Сообщить модератору
 Re: Таблица без Primary Key  [new]
Bfink
Member

Откуда: Москва
Сообщений: 2797
Этанол Эталонович
Пойду, нахер, убьюсь об стену :)


как обеспечиваете уникальность говнодокторов в говнобазе?
24 авг 10, 16:58    [9317080]     Ответить | Цитировать Сообщить модератору
 Re: Таблица без Primary Key  [new]
Серафимный Шестикрыл
Member [заблокирован]

Откуда: С луны свалился
Сообщений: 2922
Этанол Эталонович
Ну вот, например, лабал я по-быдлокодерски базейку, где несколько таблиц были без PK, ибо PK в Oracle обеспечивается индексом + Not Null по столбцам, входящим в PK. А там были и Null в столбцах (где не хватало данных), и в PK надо было включать такое число столбцов (как правило с типами varchar2(дохера)), что ORA-01450 и мама не горюй.


Сергей, ну никто тебе не может запретить тарарахаться с собственным произведением,
нема базара. Я сам могу себе слепить поделку на скорую руку.
Но это не значит, что придя на работу, где у меня мульярдные дневные обороты, я могу себе такое позволить.

Этанол Эталонович

Пойду, нахер, убьюсь об стену :)


Ну и кто из нас экстремист ?
24 авг 10, 16:58    [9317085]     Ответить | Цитировать Сообщить модератору
 Re: Таблица без Primary Key  [new]
Серафимный Шестикрыл
Member [заблокирован]

Откуда: С луны свалился
Сообщений: 2922
Этанол Эталонович
Ну что ты заладил - бизнес, бизнес :)
Не все в этом мире деньгами меряется. Есть еще и на-у-ка ;-)


Дык бизнес платит, чтобы не терять хрен знает сколько денег хрен знает в какой
дыре. А если ты пару дохтуроф наук посеешь или умножишь их число вдвое -
никто и не заметит, ящетаю :-)))
24 авг 10, 17:00    [9317101]     Ответить | Цитировать Сообщить модератору
 Re: Таблица без Primary Key  [new]
Bfink
Member

Откуда: Москва
Сообщений: 2797
Кстати, Что все заладили программист - програмист - кодер, еще же есть Архитектор, он за это и отвечать должон.
24 авг 10, 17:01    [9317106]     Ответить | Цитировать Сообщить модератору
 Re: Таблица без Primary Key  [new]
вопросец
Guest
вопросец
RA\/EN
andrey_anonymous
RA\/EN
Ну, добавим простое требование - определить, находился ли в момент времени X сотрудник на территории. Тут уже без UK/PK тяжко будет.
Отсутсвие такого требования, которое ты можешь предположить - недоработка анализа, и не есть оправдание программиста, из фактических данных на ровном месте сделавшего помойку


Поясни:
- почему сложно без PK?
- какие атрибуты предложишь как кандидаты в ключ?
- где видишь помойку и почему программист должен изобретать бизнес-требования?

1. PK/UK, но, т.к. атрибуты из следующего пункта нотнулл, то эквивалентно.
2. ЫД карточки, момент прохода с точностью оборудования в UTC
3. Чудесным образом у нас теперь есть последовательность проходов по карточке, гарантированно не содержащая дублей. А дубль по "входу-выходу" - это, извините, в такой системе уже "а хз куда он делся".



а поможет ли в данном случае ук именно на эту пару решить проблему "а хз куда он делся"

предположим по ошибке прибора пришло два евента:

id_card, t, in
id_card, t, out

t - одинаково (искуственный тест или ошибка проливать прибора).

получаем вставится, in, но ук не даст вставить out из за нарушения уникальности. тогда следующая вставка даст in.

получим последовательность ..., in, in, out,...

куда он делся.

тут или ук еще и на признак распространить или оставить как есть.


тут скорее надо смотреть в сторону unique FBI который будет позвоять вставлять in. out, in, out. но запрещать in in, out out
24 авг 10, 17:01    [9317113]     Ответить | Цитировать Сообщить модератору
 Re: Таблица без Primary Key  [new]
Bfink
Member

Откуда: Москва
Сообщений: 2797
вопросец
будет позвоять вставлять in. out, in, out. но запрещать in in, out out


это еще круче - проход есть, а в базу его не заносим!
24 авг 10, 17:04    [9317143]     Ответить | Цитировать Сообщить модератору
 Re: Таблица без Primary Key  [new]
Этанол Эталонович
Member

Откуда: Водкозажопск
Сообщений: 253
-2-
В случае информационных систем "бизнес" также используется в сочетании -аналитика, -требования,... и означает формализацию некоего процесса безотносительно его измеряемости деньгами.
У Шестикрыла бизнес - это всегда бабки. Про свои мильярдные обороты он чуть ниже проговорился :)
24 авг 10, 17:06    [9317165]     Ответить | Цитировать Сообщить модератору
 Re: Таблица без Primary Key  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6723
Этанол Эталонович,

Ключевое слово
Шестикрыл
свои
24 авг 10, 17:09    [9317197]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: Ctrl  назад   1 2 3 4 [5] 6   вперед  Ctrl      все
Все форумы / Oracle Ответить