我很擅长使用关系数据库,但已阅读了一些书籍并了解了良好设计的基础知识.
我正面临一个设计决定,我不知道如何继续.这是我正在构建的一个非常简化的版本:人们可以对照片进行评分1-5,我需要在跟踪个人投票的同时显示图片上的平均投票.例如,12人投票1人,7人投票2人等.等等.
我的规范化怪胎最初设计了这样的表结构:
Table pictures
id* | picture | userID |
Table ratings
id* | pictureID | userID | rating
Run Code Online (Sandbox Code Playgroud)
随着所有外键约束和所有设置,因为他们应该是.每当有人对图片进行评分时,我只需在评分中添加一条新记录即可.
要查找图片的平均评分,我只需运行以下内容:
SELECT AVG(rating) FROM ratings WHERE pictureID = '5' GROUP by pictureID
Run Code Online (Sandbox Code Playgroud)
以这种方式设置它让我运行我的花哨的统计数据.我很容易找到谁将某张照片评为3,哪些不是.
现在我在想是否有一堆评级(这在我真正的设计中是非常可能的),找到平均值将变得非常昂贵和痛苦.
使用非规范化版本似乎更有效.例如:
Table picture
id | picture | userID | ratingOne | ratingTwo | ratingThree | ratingFour | ratingFive
Run Code Online (Sandbox Code Playgroud)
要计算平均值,我只需要选择一行.它似乎更有效率,但更加丑陋.
有人能指出我做正确的方向吗?我最初的研究表明,我必须"找到合适的平衡点",但我该如何找到平衡点呢?任何文章或其他阅读信息也将受到赞赏.
谢谢.
我有一个Patient实体和一个List实体.患者可以属于几个不同的列表,并且列表可以具有多个不同的患者.
假设我的病人属于3个名单(A,B,C).我想从列表A和B中删除患者.虽然很明显,我不想删除列表A和B. 我该怎么做呢?
网页是否可以弹出打开的文件夹对话框,要求用户选择文件夹,然后在网页的列表(或其他内容)中显示该文件夹的内容.它不会写入文件,只会读取它们.该网页是远程托管的.
乔纳森
我在Java中有很长的比较,我想知道它们中的一个或多个是否真实.比较字符串很长且难以阅读,因此我将其分解以便于阅读,并自动使用快捷操作符|=而不是negativeValue = negativeValue || boolean.
boolean negativeValue = false;
negativeValue |= (defaultStock < 0);
negativeValue |= (defaultWholesale < 0);
negativeValue |= (defaultRetail < 0);
negativeValue |= (defaultDelivery < 0);
Run Code Online (Sandbox Code Playgroud)
negativeValue如果任何默认的<something>值为负,我希望是真的.这有效吗?它会做我期望的吗?我在Sun的网站或stackoverflow上看不到它,但Eclipse似乎没有问题,代码编译和运行.
同样,如果我想执行几个逻辑交叉点,我可以使用&=而不是&&吗?
当我使用Firefox刷新页面时,会保留复选框,输入字段等的值.
有没有办法让Firefox不使用没有JavaScript的元标记?
如何在DatagridView中更改标题文本以及如何添加或删除列 - 在C#代码中?
提前致谢
在过去的几年里,我普遍接受了这一点
如果我要使用ref-counting智能指针
入侵智能指针是要走的路
-
但是,由于以下原因,我开始喜欢非侵入式智能指针:
这个Foo在非侵入式智能指针中移动物体比侵入式智能指针更容易的唯一原因是:
在非侵入式智能指针中,只有一个指针指向每个Foo.
在入侵智能指针中,我不知道有多少对象指向每个Foo.
现在,非侵入式智能指针的唯一成本是双重间接.[也许这搞砸了缓存].
有没有人对昂贵的这个额外的间接层进行了很好的研究?
编辑:通过智能指针,我可能会指其他人称之为"共享指针"; 整个想法是:有一个附加到对象的引用计数,当它到达0时,该对象被自动删除
在 UIScrollView 中显示大块文本(取自应用程序中的 .txt 文件)以便用户可以滚动的最佳方式是什么?文本的长度是可变的。
java ×3
iphone ×2
objective-c ×2
xcode ×2
asp.net ×1
c# ×1
c++ ×1
core-data ×1
directory ×1
firefox ×1
forms ×1
html ×1
javascript ×1
local ×1
mysql ×1
or-operator ×1
performance ×1
uiscrollview ×1
vb.net ×1
winforms ×1