我很难在我正在开发的社交网络中映射对象。我映射了对象列表,我有122个主要对象。还有一个单独的系统对象列表,我现在要保留它。所以一个对象是:照片,视频,照片标签,视频标签,邮件附件,邮件等......
每个对象都有元数据,其中包括创建日期,所有者ID,隐私级别,搜索级别等详细信息,文本项目中包含单词计数,类别所属类别,其他人对评论的引用等。
现在根据我的理解,人们给每个对象一个自己的表。所以照片有它自己的表,视频有自己的等等。但这意味着我将有122个不同的表用于我的对象。如果我将它们全部合并到一个表中,那么表扫描将成为一个问题,因为您知道在社交网络中,人们总是与对象进行交互,并且表格将变得超长。
我已将对象细节分为两类:特定于对象的字段(如照片)将具有描述,大小,路径等列。然后是如上所述的所有对象具有的公共字段列表(盗版级别,搜索级别等)。这些列中的一些用户面向用户需要的隐私。有些纯粹用于系统后端报告目的,例如星期几,日期,日期等。
因此,为了模拟这将是最好的方法。总而言之,有三个层次:
系统报告/分析的对象详细信息
对象详细信息由创建日期,隐私等所有对象激发
对象类型唯一的对象详细信息。
当然,如果我需要跨对象提取报表,那么我拥有的表越多,查询就越复杂。在顶部,我有一个对象查找表,它有父对象和子对象列表,所以从那里所有其他对象表将流出。原因是我需要为新闻源,通知等维护一个默认文本列表,所以我打算在对象查找表本身中映射所有这些。
答案 0 :(得分:1)
对于数据库部分,我认为您不需要122个表,也不会为完整项目找到一个表。您的对象都可以存储在一个表中。该表将包含一个标识值,它将使每一行唯一,Hibernate喜欢的版本号,最后更新的值,用作标志的八位列(例如:非活动,仅限管理员等),对象类型编号等您可以轻松获取单个类型的对象和一列XML数据。 XML将保存对象的定义。 SQL Server在SQL2008中与XML配合使用,也可以利用XML列上的索引。 您仍然需要许多其他表来支持用户,会员资格,订单,计费(您计划为此获得报酬)和报告。