Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 帮助我进行数据库设计_Sql_Sql Server_Database Design - Fatal编程技术网

Sql 帮助我进行数据库设计

Sql 帮助我进行数据库设计,sql,sql-server,database-design,Sql,Sql Server,Database Design,我正在开发文本广告系统。谷歌广告的一些小复制品 更新图像,以便可以看到所有字段名 如果你没有看到这个图表 这是一张带有常用表格的图表。 简而言之,广告商可以有多达10种不同文本变体的同一活动,可以定位他的广告和独特的印象,只计算IP在某个网站上没有超过24小时 很简单,但问题是,根据您的经验,我在这里缺少什么,因为以后修复设计缺陷会困难得多,而且你们中的一些人可能也做了类似的事情,在这里也有许多SQL专家,所以可能我过度规范化了DB,或者没有按照需要进行规范化 第二个问题是。我的最终目标是为德

我正在开发文本广告系统。谷歌广告的一些小复制品

更新图像,以便可以看到所有字段名 如果你没有看到这个图表

这是一张带有常用表格的图表。 简而言之,广告商可以有多达10种不同文本变体的同一活动,可以定位他的广告和独特的印象,只计算IP在某个网站上没有超过24小时

很简单,但问题是,根据您的经验,我在这里缺少什么,因为以后修复设计缺陷会困难得多,而且你们中的一些人可能也做了类似的事情,在这里也有许多SQL专家,所以可能我过度规范化了DB,或者没有按照需要进行规范化

第二个问题是。我的最终目标是为德国ie公司的用户制作广告,只要广告适合用户所在国家,就可以在24小时内在同一个网站上看到相同的广告。如果有一次点击,则每次点击的次数与每次点击的次数相同。我需要得到5个“随机”的广告基于IP,国家和更高的CPC(按点击付费)。 我如何才能实现这一点与目前的设计或设计数据库的方式,它将很容易获得广告,并显示广告的统计数据


感谢您的帮助……

最好所有主键的名称都是ID,并且在外键列中使用类似PrimaryTable+ID的名称

例如,Users表中的主键名称必须是ID,TextCampaigns表中与其相关的外键必须是UserID


这只是我的意见。

总体来说,它看起来不错,如果是我的话,我会做一些小改动:

我注意到您的Countries表上有Region ID,但没有Region表。如果没有区域表,什么可以防止输入不正确的(负?)区域ID

类似地,文本活动表上的活动状态为Tinyint。这是正在存储的枚举吗?如果是这样,考虑一个状态表,因为这将防止输入不存在于枚举中的状态,这可能会使代码崩溃,因为在读取它们时尝试转换它们。

用户表上的用户状态也是如此

Countries表上的Country ID是一个整数,一点点就足够了

您的预算数字是整数,因此不可能预算到便士/美分/等,或者这些是在小部分中测量的

看起来您计划将密码存储为纯文本?考虑对密码进行腌制和散列,然后只存储这些密码,或者计划使用透明加密。 根据您计划运行多长时间,VARCHAR(15)将不足以在IPv6中存储IP地址

如果您使用的是SQL 2008,则可以使用文本活动每日统计表上的日期类型,然后将日期和活动文本变量ID设置为主键

您可以在文本活动变量表中添加一些字段,如日期开始和日期结束,以便人们可以提前设置活动。类似地,时间开始和时间停止可以允许在一天中的特定时间显示活动

我可能会更改名称,所以文本活动只是活动,等等-你可能想在未来做视频或图像活动


还有其他的事情,但现在已经足够了。我想知道你是否有可用的估计使用量?可能有助于确定更多要优化的内容。

顶部链接已修复。。。感谢您提供的信息图表现在在那里,但它的图片似乎一团糟。我看不懂。因为这个网站没有使用完整的图片大小,请点击图片上方的链接查看全屏。抱歉给您带来不便。我将重命名字段。已经进行了一些重命名,但仍有一些更改处于打开状态。。。你还缺什么吗?谢谢你,梅夫,你真的很有帮助。1.我可能会有其他类型的活动,例如名称2.我无法估计使用量,但越多越好3.感谢IP6提示,从未料到它会出现4.感谢Status table,有时只有整数作为类型会很痛苦。5.regionID是未来的计划,所以显示活动的日期和时间,只是还没有创建这些字段。如果你有更多的建议,我会很高兴阅读这些。。。再次感谢您抽出时间