我想在我的网站上创建一个下载中心,特定用户可以下载他们已付费的特定内容。我想创建一个像MySQL这样的表:
items | user1 | user2 |user3
----------
item1 | true |false |false
----------
item2 | false | true |false
----------
然后检查是否允许用户。在这种情况下,我必须为每个新用户添加一个新列,这可能是增加否的问题。用户
我怀疑这是否是一种好的或有效的方式。
请建议是否有更好的方法。
答案 0 :(得分:0)
其实你是对的。具有这种预期增加的列数是关系设计差的标志。这种设计被称为" One Big Spreadsheet",当您想将关系数据库视为MS-Excel文件时生成。
解决方法是创建3个表(下面的演示是您需要的最小列):
users
表包含列:id
,username
files
表包含列:id
,code
users_files
表连接其他两个,包含列:id
,user_id
(FK),table_id
(FK)其中(FK)代表外键这是多对多关系。