Достали! |
[Sep. 24th, 2010|12:02 pm] |
А давайте форкнем постгрес и будем выкорчёвывать из него всё говно?
Сначала выкорчуем CSTRING и BYTEA. Потом уберём лишние эксипшины: из приведения типов будем вертать NULL вместо исключения. Потом сделаем нормальное понятие о часовых поясах. (и возможно вместо двух типов TIMESTAMP станет один)
ещё предложения? |
|
|
Comments: |
У нас RDBMS. Такие отношэния здесь делаются другими методами.
плохой аргумент. ARRAY выкорчуем за то что есть HSTORE
а понимаете, тут дело в уровне абстракции. не все отношения тянут на то чтобы быть формализованными на таком фундаментальном уровне как Отношения (в терминах RDBMS)
дынные бывают слабо-структурированными и вобшем НОРМАЛЬНОСТЬ (в терминах нормальных форм) относительна. Мы можем выбрать точку зрения при которой и массив будет атомом (но вводить выводить его проще как массив (где-то В ДРУГОМ МЕСТЕ он неатомарен))
>на таком фундаментальном уровне как Отношения
В уровне отношэний ничего спецыфичного нет. Он, в общем, точно такой жэ уровень абстракци как ARRAY.
Если не нравится, что для доступа к нему херовый синтаксис -- надо менять синтаксис. Если не нравится, что доступ к нему тормозит -- надо менять аксэссоры.
А текущая ситуацыя, когда есть две одинаковые (ну, одна более убогая) абстракцыи для одного и того жэ, и отличаются они тем, что физически хранят данные по-разному -- это не абстракцыя. Это херня.
не совсем. это с точки зрения сферического коня херня конечно. но с прикладной точки зрения не всё в этом мире должно быть раздроблено на атомы и разложено по полочкам. (Торт и шашлык я бы предпочёл не нормализовывать.) Если мне нужна целостность, я использую Отношения, если мне не нужна целостность, не использую.
В реале мы всегда работаем с ошибочными данными, и нам нужен инструмент чтобы провести границу терпимости к ошибкам. (Если мы всё препарируем до простейших отношений) мы не терпим ошибок совсем и мы нигде не найдём _годный_ источник данных который бы удовлетворил такую базу.
любые реальные данные полны отношений РАЗНОЙ ВАЖНОСТИ. нельзя пренебрегать этой разницей.
И да, я за.
TIMESTAMPы вообще надо переделывать невзирая на спинную совместимость.
Ну, или взирая -- но кто её хочет пусть втыкает дополнительные библиотеки на PL/PgSQL. Поскольку сколько раз не сталкиваюсь -- столько у меня возникает подозрение, что с этими интэрфейсами что-то противоестественное.
я бы вот терпимее был к посгресовским таймстэмпам (учитывая что они первые и единственные хоть как-то работающие в этом мире) если бы не отношения между "TimestampTZ" и "Timestamp".
это же ебануцца можно просто брать и ОТБРАСЫВАТЬ показания таймзоны при приведении типов.
Я согласен насчет строк. Остальное - по ходу дела уже.
Ну что заводим проект на гугло коде?
смелый ты. давай хоть суток двое подождём отзывов других людей. тут у нас ещё Витус бывает с умными мыслями.
ты можешь предложить методику отыскания капканов связанных со сменой типа строк? ибо капканов в исходниках будет сотня тысяч и доводить отладку до сегфолтов и дебаггера было бы излишне. | |