擅长:python、mysql、java
<p>我相信你所建议的叫做<code>Entity-attribute-value</code>模型</p>
<p><a href="http://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model" rel="nofollow">http://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model</a></p>
<p>我认为将属于事件的所有数据都保存在模型中,而不是通过相关的泛型EAV表,这可能是一个很好的理由。你知道吗</p>
<p>为此,您可以使用django的多态库之一。我在生产中使用了<a href="https://django-model-utils.readthedocs.org/en/latest/managers.html#inheritancemanager" rel="nofollow">django-model-utils' InheritanceManager</a>。有相当多的库,包括django多态。你知道吗</p>
<p>采用基于固有的方法,您可以定义单个<code>Event</code>模型或<code>Sport</code>模型。一项运动可能有名称、联赛等。所有的<code>Event</code>都可能有开始日期、结束日期和运动。你知道吗</p>
<p>使用这种方法,您可以将注册中的外键定义到基<code>Event</code>类,并使用djangos内置ORM来选择特定类型的所有事件或注册,而无需采用EAV方法的附加应用程序逻辑/对象检查/属性检查!你知道吗</p>