Последнее увлечение базами данных, кажется, сосредоточено вокруг нереляционных баз данных.Зачем?Это кажется своего рода контрпродуктивным.Например, для меня имеет гораздо больше смысла выражать мои данные реляционным способом (пример кода на Django + SQL для таблиц):
class Post(models.Model):
name = models.CharField()
created = models.DateTimeField(auto_now_create = True)
class Comment(models.Model):
text = models.TextField()
post = models.ForeignKey('Post')
created = models.DateTimeField(auto_now_create = True)
SQL:
create table post (id int primary key auto_increment,
name varchar,
created datetime);
create table comment(id int primary key auto_increment,
text text,
post_id int,
created datetime,
foreign key post_id references post(id));
Сила SQL в том, что эта информация может быть выражена , поэтому многими способами.Конечно, существует целая проблема объектно-реляционного отображения, но я рассматриваю ее как особенность, а не как проблему.С помощью SQL я могу получить все отдельные комментарии к данному посту, которые старше, чем вчера, сопоставить их все и сгенерировать статистику.Можно ли сделать то же самое для нереляционных баз данных?
Казалось бы, что это может сильно повлиять на производительность при использовании нереляционной базы данных, такой как MongoDB, потому что вы сразу же захватите весь граф объектов, а не то, что вам нужно минимально,
Может кто-нибудь объяснить мне, каковы преимущества использования нереляционной базы данных?