python - 使用二进制表示设计数据库
问题描述
我想澄清这一点,因为我肯定不是数据库专家,可能弄错了。
我的任务是使用任何语言的简单二进制表示来设计一个小型地址簿数据库(姓名、电话号码等)。
我在想我需要创建一个数据库,比如用 Python 并以二进制格式存储数据,所以我写了这个。
import sqlite3 as lite
con = lite.connect('address_book.db')
cur = con.cursor()
users = (
(1, 'USER1', 'Surname1', 'Address1'),
(2, 'USER2', 'Surname2', 'Address2'),
)
# Convert all data in users to the binary representation
new_arr = ()
for i in users:
tuple_to_append = ()
for j in i:
if isinstance(j, int):
tuple_to_append += (bin(j),)
elif isinstance(j, str):
tuple_to_append += (''.join(map(bin, bytearray(j, encoding='utf-8'))),)
new_arr += (tuple_to_append,)
cur.execute("DROP TABLE IF EXISTS users")
cur.execute("CREATE TABLE IF NOT EXISTS users("
"user_id INTEGER PRIMARY KEY,"
"first_name VARCHAR(20) NOT NULL,"
"last_name VARCHAR(20) NOT NULL,"
"address VARCHAR(20) NOT NULL)")
cur.executemany("INSERT INTO users VALUES(?, ?, ?, ?)", new_arr)
con.commit()
我在正确的轨道上吗?
解决方案
推荐阅读
- c++ - 当模拟对象包装在 unique_ptr 中时,为什么 GoogleMock 会报告模拟对象泄漏?
- php - 如何将 sonarcloud 与 bitbucket 集成?
- javascript - 如何使用角度 6 动态显示/隐藏创建分区
- firebase - 导入 Firebase_Messaging 会导致构建失败
- javascript - SyntaxError:预期的表达式,得到''
- java - 如何转换列表的日期数据
进入 SimpleDateFormat - hyperledger-fabric - HyperLedger Fabric SDK Go 显示无法将 nil 转换为 csr.KeyRequest 类型
- php - 如何验证服务器上的访问令牌
- c++ - 如何为特定类型专门化模板类方法?
- swift - 快速获取用户国家