class PageFieldDefinitions(models.Model):
field_name = models.CharField(max_length=100, blank=True, default='', null=True)
class Pages(models.Model):
name = models.CharField(max_length=100, blank=True, default='', null=True)
class PageFieldContent(models.Model):
content = models.CharField(max_length=100, blank=True, default='', null=True)
page_field = models.ForeignKey(PageFieldDefinitions)
page = models.ForeignKey(Pages)
对于 Django: 你可以使用上面的模型。我正在使用这种模型来填充我的模型。如果使用“大”模型,则无法动态扩展模型。因为预测模型的大小并不容易。可以在您的管理站点上使用它。
另外,我使用 Django 和 PostgreSQL,如果你不修改数据库,这个数据库不支持全文搜索。 (http://www.postgresql.org/docs/9.3/static/textsearch.html)
对于 Meteor: 如你所知或不知道 MeteorJS 是一个使用 MongoDB 的全栈框架。就我使用的情况而言,Mongo 是一个快速的 NoSQL DB,并且支持全文搜索。如果你没有很好地创建你的数据库,你会发现由于 NoSQL 而缺乏数据完整性。如果您是一位经验丰富的 JS 开发人员,与 Django 相比,使用 Meteor 开发 CMS 系统所需的时间会更少。
在我的项目中,我需要一个快速的搜索引擎和数据完整性。我为 Django 定义了两个数据库。我使用 Mongo 作为搜索引擎,使用 PostgreSQL 来保存我的数据。
阅读以下来源:
Django 中的 Mongo:http://django-mongodb-engine.readthedocs.org/en/latest/topics/setup.html
Django 中的多个数据库:https://docs.djangoproject.com/en/1.9/topics/db/multi-db/
Django 中的多数据库和多模型:multiple databases and multiple models in django
settings.py
DATABASES = {
'default': {
'NAME': 'app_data',
'ENGINE': 'django.db.backends.postgresql',
'USER': 'postgres_user',
'PASSWORD': 's3krit'
},
'search': {
'ENGINE' : 'django_mongodb_engine',
'NAME' : 'my_database',
...
'OPTIONS' : {
'socketTimeoutMS' : 500,
...
}
}
}
models.py
class SearchContent(models.Model):
content = models.CharField(max_length=100, blank=True, default='', null=True)
class Meta:
app_label = 'my_database'