我打算建立像match.com,PlentyOfFish.com这样的约会应用。
我将从头开始构建它。我使用asp.net和MYSQL作为我的数据库。
所以让我们从头开始播放场景。我们好吗?
一个男人想要找一个女人。 所以男人在我的网站注册。 然后网站会向他询问有关他的偏好的问题。 例如:你的头发颜色, 种族, 教育程度, 薪水等...
同时,网站会询问想和他在一起的合作伙伴。 她的头发颜色, 种族等...等等......
所以这是我的数据库结构。我知道这非常复杂。 但是让我们一步一步地构建它。首先,我只想注册这个男人,采取他的偏好和他的伴侣的偏好。那么app应该进行匹配。现在已经足够了。 (后来要建立发送好友请求,聊天应用程序等)
这是我提出的数据库架构。
我需要注册此用户。 这是用户表
CREATE TABLE `user` (
`user_id_pk` int(20) unsigned NOT NULL AUTO_INCREMENT,
`email`
`salt,
`password,
`password_modified_date,
`recovery_email,
`is_verified`
//--More fields
)
然后是问题表
CREATE TABLE `question` (
`question_id_pk`,
`question`,
`is_active`,
PRIMARY KEY (`question_id_pk`)
)
此表包含所有问题
这是答案表。这包含上述问题表的所有答案
CREATE TABLE `answer` (
`answer_id_pk`,
`question_id_fk,
`answer`,
PRIMARY KEY (`answer_id_pk`)
)
所以现在我需要将这个问题和答案映射到用户和合作伙伴
所以这是寻求人员表
CREATE TABLE `me` (
`me_id_pk` AUTO_INCREMENT,
`user_id_fk`,
`answer_id_fk`,
`question_id_fk,
PRIMARY KEY (`me_id_pk`)
)
这是合作伙伴的偏好
CREATE TABLE `partner` (
`partner_id_pk AUTO_INCREMENT,
`user_id_fk`,
`answer_id_fk`,
`question_id_fk`,
PRIMARY KEY (`partner_id_pk`)
)
因此,在此表和伙伴表之间进行匹配。 如果我们采取特定人员的表格,那么该应用程序将查找与该特定人员的合作伙伴表格要求相匹配的其他表格。 如果这些匹配他们匹配。
到目前为止,我想出了这个架构。我这样做对吗?我需要考虑可扩展性和性能。我知道没有正确的方法来做到这一点。至少你可以改进我的解决方案。