All streams
Search
Write a publication
Pull to refresh
106
0

User

Send message
Это хорошо что появились вопросы :) Значит статья своей цели достигла. Как появится время распишу все более подробно.
Ну да, виноват. Тут просто двойное назначение так сказать, поэтому выбран вариант с 4-мя полями.
Кстати, спасибо за ссылку :)
Не стану спорить ибо это затянется. Скажу лишь что в MySQL нет контроля ссылочной целостности (по крайней мере для MyISAM) и это не мешает быть этой СУБД популярной. Наверное это о многом говорит.
Нужны. Иногда нужно выбрать все связанные объекты всех типов а иногда только одного.
Ссылку не дам. Внутреннюю реализацию там все равно не видно а расценят как пиар проекта. Не к чему здесь.
Я потом позже расскажу как обрабатывать разнотипные связи. В двух словах многие не поймут, тут подробно нужно рассказывать на примерах, а времени сейчас нет.
Паттерны вещь очень гибкая. Рассматривать их как догму большая ошибка.
Проблем быть не может, потому что для удаления объектов используется гарбиджколлектор. При удалении объекта, на самом деле объект из таблицы не удаляется, а удаляется лишь ссылка на него из твблицы GUID. Гарбиджколлектор (обычный джоб например) периодически удаляет объекты, на которые никто не ссылается. Само наличие лишних записей в БД не критично, это просто мусор который никому не мешает.
Я писал этак года два назад.
Честно говоря не понял сути :)
Я и не призываю использовать эту схему везде. Я в статье упомянул, что даже в системе выполненной по этой схеме, некоторые части реализованы по классической. Впрочем каждый имеет право на свое мнение. Некоторые до сих пор ООП не признают, и с радостью вам докажут чем ООП плох.
Статья для новичков писалась. Опытному человеку она может показаться неактуальной конечно.
Социальная сеть. Множество разнотипных объектов с причудливыми связями.
EAV (Entity-Attribute-Value). Тоже применимый для некоторых задач паттерн. Только не для тех которые описаны в этой статье.
Кстати насчет "каждый должен через это пройти"
Опыт проектирования баз данных у меня достаточный, что бы отличить хорошее от плохого. Нужно понимать, что в данном случае БД это лишь место хранения связей объектов, для реализации паттерна "компоновщик". Вообще говоря, хранить связи можно где угодно, например в xml, просто в данном случае выбрана СУБД.
По поводу типа связей, этот вопрос так же решен, но другим способом. Не хочется углубляться сейчас в подробности.
Насчет второго замечания, не согласен. Связи ограничивать не так уж необходимо. Но если так уж хочется, можно этот контроль реализовать программно, например с помощью файла конфигурации. Пока такой необходимости не было.
Знаю. Но так короче :) Мне это замечание уже делали но менять так вот по быстрому api страшновато. Проект закончим, исправлю.
Наверное SQL? Наверное стоит перед переносом подредактировать статью, литературный стиль, орфографию. Писалось "по быстренькому", поэтому не уверен что все всем понятно. Давайте сначала обсудим, а там посмотрим.

Information

Rating
Does not participate
Location
Москва и Московская обл., Россия
Date of birth
Registered
Activity