我想是因为我听到这很好(我是新手Web开发人员),以限制我的数据库表中的约。我想让用户在数据库中输入一个列表。所以他们输入一个标题,整体评论,然后开始制作清单。我无法弄清楚如何在不为每个列表制作新表的情况下做到这一点。因为,例如,一个用户想要一个包含44个值的列表,而另一个用户需要一个包含10个值的列表。如果不为每个列表制作一个新表格,我都无法想象如何做到这一点。我非常感谢你能给我的任何帮助/见解。SQL数据库设计需要帮助
2
A
回答
5
基本上,你想为用户列表,在表中的每一行是指一个用户的名单表,另一个表用户列表值,其中表中的每一行都有一列参考到它所属的列表,以及用户输入的值列。
0
你的表可能是: 用户名,INT ListID,INT(主键唯一标识符) 标题,VARCHAR(250) 评论,VARCHAR(MAX)
Example Content:
1 | 1 | The Title | My Comment
1 | 2 | The Other Title | My other comment
2 | 3 | First Comment | Second Person, first comment
Eacher用户只是得到他们的从查询列表:
选择ListID,影片名称,评论作者the_Table 其中UserID = @UserID
0
你可以用一个逃脱对于所有列表行的表,比方说简单地
CREATE TABLE ListLines (
listID INTEGER,
lineNo INTEGER,
line TEXT,
PRIMARY KEY (listID, lineNo),
FOREIGN KEY (listID) REFERENCES Lists
);
与列出的表格成为:
CREATE TABLE Lists (
listID INTEGER PRIMARY KEY,
userID INTEGER,
title TEXT,
comment TEXT,
FOREIGN KEY (userID) REFERENCES Users
);
假设你有一个Users
表与每个用户的信息主键userID INTEGER
(名等等)。
因此,要获得给予其ID你刚才
SELECT line FROM ListLines
WHERE listID=:whateverid
ORDER BY lineNo;
,或者你可以UNION与例如在一个列表中的所有行标题:
SELECT title AS line FROM Lists
WHERE listID=:whateverid
UNION ALL
SELECT line FROM ListLines
WHERE listID=:whateverid
ORDER BY lineNo;
等等。这种灵活和高效的安排是做事的关系的方式...
相关问题
- 1. 需要数据库设计帮助
- 2. 需要数据库设计帮助
- 3. 需要数据库设计帮助
- 4. 需要数据库设计帮助
- 5. 需要数据库设计帮助
- 6. 帮助数据库设计
- 7. 帮助数据库设计
- 8. 帮助数据库设计
- 9. 数据库设计帮助
- 10. WCF设计需要帮助
- 11. 需要帮助,使MyBatis可怕的数据库设计工作
- 12. 需要帮助重构查询/数据库设计
- 13. 需要数据库表格设计帮助
- 14. 需要关于设计数据库的帮助
- 15. 在数据库设计上需要帮助
- 16. 需要帮助,我的数据库设计
- 17. 需要帮助设计大型数据库更新过程
- 18. PHP极客需要数据库设计帮助
- 19. 需要数据库设计规范化帮助(5nf)
- 20. 需要帮助数据库设计请假应用模块PHP
- 21. 需要帮助设计我的发票数据库结构
- 22. 需要优先表数据库设计的帮助
- 23. SQL - 数据库设计,需要建议
- 24. 需要帮助SQL
- 25. 需要SQL帮助
- 26. 需要帮助MySQL数据库(VB.NET)
- 27. 需要帮助构建数据库
- 28. 需要SQLite数据库帮助
- 29. 需要MS-Access数据库帮助
- 30. 需要数据库完整性帮助