【发布时间】:2014-06-06 14:33:42
【问题描述】:
我正在创建广告系统,该系统应显示在 ATM 上。现在,我必须建立一个数据库结构,用于存储广告、ATM 和客户合规性。
广告系统必须根据 ATM 和 客户。
关键是没有严格定义客户。可以使用其任何属性(卡号、帐户、客户 ID、客户年龄……)对其进行过滤。 例如:
- 开 ATM=1 ADV=2 应在客户使用类似“1111%”开的卡时显示
- 除 ATM=1 ADV=3 之外的所有 ATM 都应在 ClientID 位于 (1,2) 时显示
如何将这些数据存储在关系数据库中?
我有一个解决方案,但我不喜欢它,我将创建一个 SQL 表,其中将保存原因。 例如:
广告表
Adv_ID
Terminal_ID
状态(值可以是:允许/拒绝)
规则(这里会写SQL过滤器,用于 例如:“像 '1111%' 和 client_id !=10230 的卡片”)
screen_id (on 此广告必须显示在哪个页面)顺序(广告优先级)
您还有其他建议吗?
【问题讨论】:
-
你有多少这些列,你的条件是否只能由
AND运算符连接,是否有超过IN、LIKE(并且都与NOT结合) ,谁来维护这个配置? -
条件将仅与 AND 运算符连接。并且将使用IN,LIKE,NOT IN,NOT LIKE,=,!=。此配置将由 UI 的 ATM 软件专家维护。但目前,我只编写用于配置的 Web 服务。
标签: database oracle database-design data-structures ads