游戏数据库存储年末优惠活动时,需要考虑以下几个基础概念和相关因素:
假设我们要存储年末优惠活动信息,可以设计如下表结构:
CREATE TABLE promotions (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
description TEXT,
start_date DATETIME NOT NULL,
end_date DATETIME NOT NULL,
discount_rate DECIMAL(5, 2) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
);
以下是一个简单的 Python 示例,使用 SQLAlchemy ORM 操作 MySQL 数据库:
from sqlalchemy import create_engine, Column, Integer, String, Text, DateTime, DECIMAL, TIMESTAMP
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
from datetime import datetime
Base = declarative_base()
class Promotion(Base):
__tablename__ = 'promotions'
id = Column(Integer, primary_key=True)
name = Column(String(255), nullable=False)
description = Column(Text)
start_date = Column(DateTime, nullable=False)
end_date = Column(DateTime, nullable=False)
discount_rate = Column(DECIMAL(5, 2), nullable=False)
created_at = Column(TIMESTAMP, default=datetime.utcnow)
updated_at = Column(TIMESTAMP, default=datetime.utcnow, onupdate=datetime.utcnow)
engine = create_engine('mysql+pymysql://user:password@host/dbname')
Base.metadata.create_all(engine)
Session = sessionmaker(bind=engine)
session = Session()
# 添加新的优惠活动
new_promotion = Promotion(
name="年末大促",
description="全场商品8折优惠",
start_date=datetime(2023, 12, 1),
end_date=datetime(2023, 12, 31),
discount_rate=0.8
)
session.add(new_promotion)
session.commit()
# 查询优惠活动
promotions = session.query(Promotion).filter(Promotion.start_date <= datetime.now(), Promotion.end_date >= datetime.now()).all()
for promo in promotions:
print(f"{promo.name}: {promo.description}, 折扣: {promo.discount_rate * 100}%")
通过合理的设计和管理,可以确保游戏数据库在存储年末优惠活动时的高效性和可靠性。
领取专属 10元无门槛券
手把手带您无忧上云