我有account_table
和news_table
。可以通过管理员帐户创建新闻。
account_table
有4列,分别为:
account_id
2.用户名
3.密码
4. user_type
news_table
有5列,分别为:
news_id
标题
消息
4. created_by
5. created_on
如果我要在account_id
上设置news_table
外键,那就意味着如果管理员被删除,他报告的新闻也会被删除,这不应该发生。当有一个名为account_id
的列时,为什么news_table
甚至与created_by
相关,该列通过在创建新闻时将会话用户与{{1}一起插入“来填充},title
,message
列。
我真的很困惑这个小桌子的最佳设计。数据库中的每个表是否应该相互连接?
答案 0 :(得分:0)
使用外键取决于您,它不是强制性的,它为您提供了一些功能,例如:
至于您担心删除帐户会导致删除新闻,这是不正确的。
定义外键时,它会询问您在删除记录时要执行的操作,删除新闻或将created_by设置为NULL。您应该选择设置为NULL,以便不必删除新闻。如果您不知道如何定义外键,可以使用像phpmyadmin这样的工具来完成它。
答案 1 :(得分:0)
如果您链接这两个表,如果外部可以为空,您仍然可以在保留新闻的同时删除该帐户。但那么这种关系的用例是什么?更有可能在您的用例中不需要这种关系。
如果我们总是创建关系,那么除了新闻之外,像帐户这样的共同对象可能与许多其他事物相关联。除非显然是必要的,否则我会避免创建关系。