我正在制作聊天应用程序,我想用 sql 记录历史记录,我希望在消息 VC 中我将看到与我聊天的所有用户,我想拥有每个用户的历史记录。我这里需要有2个sql表吗?或者我该如何实现它?
我可以制作一个 sqlite 表,但如何添加另一个?
最佳答案
如果您问您的 SQLite 数据库中是否可以有多个表,答案很简单,可以。只需为您需要的每个表发出适当的 CREATE TABLE
语句即可。
如果您询问是否可以在运行时动态创建额外的表(例如,为每个聊天 session 创建一个表),是的,您也可以这样做(同样,只需发出 CREATE TABLE
语句) ,但您可能不想这样做。您通常需要一个固定的模式,该模式由一系列捕获数据模型的表表示。
例如,如果我要实现一个有多个用户的聊天系统,我可能会实现三个表,一个聊天 session 列表,一个参与每次聊天的用户的列表(假设您可能有多个用户在一个聊天),以及每个 session 中的个人聊天消息。我会预先创建这些表,例如:
-- a list of chat sessions
create table session (session_id integer primary key autoincrement,
session_start_timestamp double);
-- a list of which users participated in the specified session
create table session_user(session_user_id integer primary key autoincrement,
session_user text not null, -- who
session_id integer not null); -- which session
-- the individual chat messages
create table chat_history (chat_id integer primary key autoincrement,
session_id integer not null, -- which session
chat_timestamp real not null, -- when
session_user_id integer not null, -- who
chat_message text); -- what
关于ios - SQL 2 表,ios,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22253821/