mar*_*ami 5 database oracle database-design ads data-structures
我正在创建广告系统,应该在ATM上显示.目前,我必须建立一个数据库结构,用于存储广告,ATM和客户合规性.
广告系统必须根据ATM和客户选择广告.
关键是客户没有严格定义.它可以使用其任何属性(卡号,帐户,客户端ID,客户端年龄等)进行过滤.例如:
如何将这些数据存储在关系数据库中?
我有一个解决方案,但我不喜欢它,我会创建一个表,SQL将保存原因.例如:
广告表
Adv_ID
Terminal_ID
状态(值可以是:允许/拒绝)
规则(这里将写入SQL过滤器,例如:"卡像'1111%'和client_id!= 10230")
screen_id(必须在哪个页面上显示此adv )订单(优先级)
你有什么其他的建议?
您可以尝试像这样设计您的配置:
NUMBER
,VARCHAR
)NOT
检查约束)LIKE
, IN
(将覆盖=
and!=
但您也可以显式添加它们)这将允许生成所有条件,同时避免拼写错误和 SQL 注入。我添加了data_type
检查何时只允许使用数字以及何时需要添加/转义引号。
adv column_name modifier operator values (shown denormalized)
2 atm IN 1
2 customer LIKE 1111%
3 atm NOT IN 1
3 clientID IN 1,2
Run Code Online (Sandbox Code Playgroud)