gpt4 book ai didi

Mysql数据库表结构

转载 作者:行者123 更新时间:2023-11-30 01:05:33 26 4
gpt4 key购买 nike

我目前正忙着一个项目,我想在大学第二年做...该项目都是关于用户和联系人的,每个用户可以有许多联系人,并且许多联系人可以属于许多用户,因为我看到它作为多对多关系我想创建一个 user_contact 表。用户和联系人之间的关系可以是 friend 、工作学院或家庭成员..关系也可以是被动或主动状态..我还想跟踪谁最后编辑了联系人的记录以及某个用户的日期

该系统将在某个公司内部使用,该系统的目的是显示用户与公司外部联系人的关系,例如约翰正在搜索为可乐可乐工作的 pam,他看到与他也认识 pam 作为 friend ,并且关系处于活跃状态..

我当前的表结构:

//User table

user_id | username|password|fname|lname|email

//Contact_table
contact_id|fname|lname|contactnumber|email|lastedited|editdate

//User_contact table
id|user_id|contact_id|relationship_type|relationship_state

由于我是 mysql 环境的新手,所以我的问题是我是否采取了正确的方法...任何建议都会非常有帮助..

如何将用户表中的用户 ID 链接到 user_contact 表中的用户 ID 以及联系人 ID 中的用户 ID?

最佳答案

联系人的版本应该是一个单独的表,以避免部分依赖。另外,最好将人与人联系起来,这样就不需要联系人表如果您要使用 InnoDB,您应该建立外键限制,将联系人和版本表中的 person_id 链接到人员表。类似这样的事情:

CREATE TABLE editions (
edit_id INT AUTO_INCREMENT PRIMARY KEY,
contact_id INT,
editor_id INT,
editdate DATE,
FOREIGN KEY (contact_id) REFERENCES contacts(contact_id),
FOREIGN KEY (editor_id) REFERENCES users(person_id)
);

CREATE TABLE contacts (
person_id INT,
contact_id INT,
relationship_type ENUM("friend", "work", "family"),
relationship_state CHAR(1),
FOREIGN KEY (person_id) REFERENCES persons(person_id),
FOREIGN KEY (contact_id) REFERENCES persons(person_id)
);

CREATE TABLE persons (
person_id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(15) UNIQUE NOT NULL,
password VARCHAR(15) NOT NULL,
fname VARCHAR(15),
lname VARCHAR(25),
email VARCHAR(50) UNIQUE NOT NULL,
contactnumber VARCHAR(15)
);

关于Mysql数据库表结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19752237/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com