我们正在设计一个系统,其中有两种类型的实体公司和财产。 Property和Company都有自己的媒体资源(视频,照片),因此我们正在数据库级别上讨论两种处理方法。
首先是要有一个Media表,该表具有指向Company和Property的可空外键
第二个是对于Company和Property,我们将拥有CompanyMedia和PropertyMedia
这些方法中的哪一种更有意义?
编辑:
应该因为建议解决方案2而被杀死:)。
答案 0 :(得分:1)
第二种方法是恕我直言。 media_url 和 media_type 属性在数据库中必须唯一。否则,您可能会面临重复和同步问题。
模型2出现问题的例子:
我在这里看到4张桌子。公司,媒体资源,媒体和媒体类型。媒体类型也应该有自己的表,以避免重复。
因此:
Company
idCompany
CompanyName
Property
idProperty
PropertyName
Media
idMedia
MediaURL
idMediaType, FK to MediaType
MediaType
idMediaType
Type
和链接表:
Property_has_Media
idProperty
idMedia
Company_has_Media
idCompany
idMedia
型号:
如果一种媒体从未同时与公司和财产相关联,我会建议采用这种结构。 根据您的问题,这就是我的理解。从概念上讲,媒体没有定义公司与财产之间的链接,因此拥有2个单独的链接表更为合理。还将在整个查询中避免“ IS NOT NULL”。