首页 > 解决方案 > 使用二进制表示设计数据库

问题描述

我想澄清这一点,因为我肯定不是数据库专家,可能弄错了。

我的任务是使用任何语言的简单二进制表示来设计一个小型地址簿数据库(姓名、电话号码等)。

我在想我需要创建一个数据库,比如用 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()

我在正确的轨道上吗?

标签: pythonsqlite

解决方案



推荐阅读