Django模型 - MySql。成千上万的规范化表格,还是一些巨大的非规范化表格? Freebase作为Mysql表

时间:2013-05-28 14:16:51

标签: mysql database django-models

我在业余时间修改了一个将freebase rdf模式转换为django模型的程序。应该用这种方法合理地规范数据库。问题是,当我运行syncdb后,当我进行表计数时,它最终会有超过1000个表,而这只是关于书籍,电影和密切相关的东西的模式。

最好是为成千上万的标准化表格,或者我应该尝试将信息转换为更少的表格(见下文)?

以下是目前构建的django模型的一个小例子。

class Type_content_uploadedby(...):
    f_content = BigForeignKey(...)
    f_uploaded_by_rank = models.IntegerField(...)
    f_content_rank = models.IntegerField(...)
    f_uploaded_by = BigForeignKey(...)

    class Meta():
        unique_together = (("f_uploaded_by", "f_content"),)
        app_label = 'db'


class Type_content(...):
    object_fk = BigForeignKey(...)
    f_length = models.BigIntegerField(...)
    f_blob_id = models.CharField()
    f_language = BigForeignKey(...)
    f_uploaded_by = models.ManyToManyField(...)
    f_media_type = BigForeignKey(...)
    f_text_encoding = BigForeignKey(...)

    class Meta():
        app_label = 'db'

我可以尝试创建更少表的一种方法是将域的结构信息,某些表中的类型和属性以及所有外键链接存储在一个庞大的边表中。所有数据类型(字符串,整数,数据......)都可以存储在一个表中,每个表都有一个属性外键和一个对象外键。这不会被规范化,所有表格,尤其是边缘表格都会非常大。

什么是最好的解决方案,还是有另一个更好的解决方案?

0 个答案:

没有答案