首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >可推广广告的数据库设计

可推广广告的数据库设计
EN

Stack Overflow用户
提问于 2010-02-17 09:45:55
回答 2查看 757关注 0票数 2

我有一张广告表,上面有两种推广方式的广告。它们可以在搜索结果中被推广,因此它们排在其他广告之前,或者它们可以被推广到首页,在那里随机选择几个被推广的广告。他们将在一段时间内得到提升。

我不确定如何最好地做到这一点。

另一个表为这些推广的广告,我应该有一个cron作业删除他们一旦到期,或...多么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-02-17 10:00:30

我认为这里有两个概念,adpublication

具体说到数据库设计,这取决于您想要向publication添加多少信息。

如果只是类型,您可以在同一个表中使用一个(可能是数字)字段。

如果你需要添加更多特定于publication的信息,你最好为这些信息创建一个新的表格,这将打开一些有趣的设计问题,比如一个ad是否只能有一个或多个不同的publications (例如,首先出现并将其包含在邮件时事通讯中)。

票数 1
EN

Stack Overflow用户

发布于 2010-02-17 09:55:52

最好的做法是有一个第二个表,其中有一个指向ads表的外键,一个用于促销等级的列(如果需要的话),一个用于截止日期的列,以及一个显示它是首页、搜索还是以后要添加的其他内容的列。(例如:1代表搜索,2代表首页,或者分别是' search‘和'front_page’)

当您选择要促销的广告时,您可以从AD_PROMOTION表中选择并将其加入到ADS表中。然后,您只需在选择它时将其降级或删除,而不是在过期日期过后使用cronjob终止它。

代码语言:javascript
运行
复制
while (ad != null) {
    ad = getRandomAd()
    if (ad.expires < now()) {
        demote(ad);
        ad = null; // Make sure you get another one
    }
}

当然,你需要一些适当的东西来确保你在某个时候得到一个广告,因为你可能没有任何推广的广告。

代码语言:javascript
运行
复制
ADS
AD_ID    INFORMATION
-----    -----------
1        'Max Power'
2        'Min Power'
3        'Homer Simpson'

AD_PROMOTION
AD_ID    LEVEL    EXPIRATION_DATE    PLACE
-----    -----    ---------------    -----
2        2        2010-02-18         'search'
3        3        2010-03-01         'front_page'
3        2        2010-04-01         'search'
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2277795

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档