Showing a message when the column is true











up vote
1
down vote

favorite












I'm making an app using Rails. I have 4 boolean columns in a table like below, and I want to show a message if that column is true.



class CreatePosts < ActiveRecord::Migration[5.2]
def change
create_table :posts do |t|
t.integer :user_id, null: false, default: 0
t.string :title, null: false, default: ''
t.text :description, null: true
t.boolean :tag_1, null: false, default: false
t.boolean :tag_2, null: false, default: false
t.boolean :tag_3, null: false, default: false
t.boolean :tag_4, null: false, default: false

t.timestamps
end
end




posts_controller.rb



def index
@posts = Post.all
end




index.html.erb



<% @posts.each do |post| %>
<ul>
<% if post.tag_1 %>
<li><%= 'tag_name_A' %></li>
<% end %>
<% if post.tag_2 %>
<li><%= 'tag_name_B' %></li>
<% end %>
<% if post.tag_3 %>
<li><%= 'tag_name_C' %></li>
<% end %>
<% if post.tag_4 %>
<li><%= 'tag_name_D' %></li>
<% end %>
<% if !post.tag_1 && !post.tag_2 && !post.tag_3 && !post.tag_4 %>
<li>none</li>
<% end %>
</ul>
<% end %>


So 'tag_name_A' will be shown if tag_1 is the only true column, and there'll be 'tag_name_B' & 'tag_name_D' shown if tag_2 and tag_4 are both true. (I hope I'm making myself clear.)

These codes are working fine and I'm already getting what I want, but I just don't like how they are written. It looks messy and obviously not smart. (You can tell that I'm a newbie.) How would you optimize them?










share|improve this question







New contributor




ta539tg70 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • Is using 4 boolean columns a requirement? That's not really the right way to build a tagging system. Typically you you use something like a tags table and a junction table joining posts to tags, which lets you have an arbitrary number of tags and makes the data a lot easier to work with.
    – meagar
    12 hours ago















up vote
1
down vote

favorite












I'm making an app using Rails. I have 4 boolean columns in a table like below, and I want to show a message if that column is true.



class CreatePosts < ActiveRecord::Migration[5.2]
def change
create_table :posts do |t|
t.integer :user_id, null: false, default: 0
t.string :title, null: false, default: ''
t.text :description, null: true
t.boolean :tag_1, null: false, default: false
t.boolean :tag_2, null: false, default: false
t.boolean :tag_3, null: false, default: false
t.boolean :tag_4, null: false, default: false

t.timestamps
end
end




posts_controller.rb



def index
@posts = Post.all
end




index.html.erb



<% @posts.each do |post| %>
<ul>
<% if post.tag_1 %>
<li><%= 'tag_name_A' %></li>
<% end %>
<% if post.tag_2 %>
<li><%= 'tag_name_B' %></li>
<% end %>
<% if post.tag_3 %>
<li><%= 'tag_name_C' %></li>
<% end %>
<% if post.tag_4 %>
<li><%= 'tag_name_D' %></li>
<% end %>
<% if !post.tag_1 && !post.tag_2 && !post.tag_3 && !post.tag_4 %>
<li>none</li>
<% end %>
</ul>
<% end %>


So 'tag_name_A' will be shown if tag_1 is the only true column, and there'll be 'tag_name_B' & 'tag_name_D' shown if tag_2 and tag_4 are both true. (I hope I'm making myself clear.)

These codes are working fine and I'm already getting what I want, but I just don't like how they are written. It looks messy and obviously not smart. (You can tell that I'm a newbie.) How would you optimize them?










share|improve this question







New contributor




ta539tg70 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.




















  • Is using 4 boolean columns a requirement? That's not really the right way to build a tagging system. Typically you you use something like a tags table and a junction table joining posts to tags, which lets you have an arbitrary number of tags and makes the data a lot easier to work with.
    – meagar
    12 hours ago













up vote
1
down vote

favorite









up vote
1
down vote

favorite











I'm making an app using Rails. I have 4 boolean columns in a table like below, and I want to show a message if that column is true.



class CreatePosts < ActiveRecord::Migration[5.2]
def change
create_table :posts do |t|
t.integer :user_id, null: false, default: 0
t.string :title, null: false, default: ''
t.text :description, null: true
t.boolean :tag_1, null: false, default: false
t.boolean :tag_2, null: false, default: false
t.boolean :tag_3, null: false, default: false
t.boolean :tag_4, null: false, default: false

t.timestamps
end
end




posts_controller.rb



def index
@posts = Post.all
end




index.html.erb



<% @posts.each do |post| %>
<ul>
<% if post.tag_1 %>
<li><%= 'tag_name_A' %></li>
<% end %>
<% if post.tag_2 %>
<li><%= 'tag_name_B' %></li>
<% end %>
<% if post.tag_3 %>
<li><%= 'tag_name_C' %></li>
<% end %>
<% if post.tag_4 %>
<li><%= 'tag_name_D' %></li>
<% end %>
<% if !post.tag_1 && !post.tag_2 && !post.tag_3 && !post.tag_4 %>
<li>none</li>
<% end %>
</ul>
<% end %>


So 'tag_name_A' will be shown if tag_1 is the only true column, and there'll be 'tag_name_B' & 'tag_name_D' shown if tag_2 and tag_4 are both true. (I hope I'm making myself clear.)

These codes are working fine and I'm already getting what I want, but I just don't like how they are written. It looks messy and obviously not smart. (You can tell that I'm a newbie.) How would you optimize them?










share|improve this question







New contributor




ta539tg70 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











I'm making an app using Rails. I have 4 boolean columns in a table like below, and I want to show a message if that column is true.



class CreatePosts < ActiveRecord::Migration[5.2]
def change
create_table :posts do |t|
t.integer :user_id, null: false, default: 0
t.string :title, null: false, default: ''
t.text :description, null: true
t.boolean :tag_1, null: false, default: false
t.boolean :tag_2, null: false, default: false
t.boolean :tag_3, null: false, default: false
t.boolean :tag_4, null: false, default: false

t.timestamps
end
end




posts_controller.rb



def index
@posts = Post.all
end




index.html.erb



<% @posts.each do |post| %>
<ul>
<% if post.tag_1 %>
<li><%= 'tag_name_A' %></li>
<% end %>
<% if post.tag_2 %>
<li><%= 'tag_name_B' %></li>
<% end %>
<% if post.tag_3 %>
<li><%= 'tag_name_C' %></li>
<% end %>
<% if post.tag_4 %>
<li><%= 'tag_name_D' %></li>
<% end %>
<% if !post.tag_1 && !post.tag_2 && !post.tag_3 && !post.tag_4 %>
<li>none</li>
<% end %>
</ul>
<% end %>


So 'tag_name_A' will be shown if tag_1 is the only true column, and there'll be 'tag_name_B' & 'tag_name_D' shown if tag_2 and tag_4 are both true. (I hope I'm making myself clear.)

These codes are working fine and I'm already getting what I want, but I just don't like how they are written. It looks messy and obviously not smart. (You can tell that I'm a newbie.) How would you optimize them?







ruby-on-rails






share|improve this question







New contributor




ta539tg70 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.











share|improve this question







New contributor




ta539tg70 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this question




share|improve this question






New contributor




ta539tg70 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









asked yesterday









ta539tg70

61




61




New contributor




ta539tg70 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





ta539tg70 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






ta539tg70 is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












  • Is using 4 boolean columns a requirement? That's not really the right way to build a tagging system. Typically you you use something like a tags table and a junction table joining posts to tags, which lets you have an arbitrary number of tags and makes the data a lot easier to work with.
    – meagar
    12 hours ago


















  • Is using 4 boolean columns a requirement? That's not really the right way to build a tagging system. Typically you you use something like a tags table and a junction table joining posts to tags, which lets you have an arbitrary number of tags and makes the data a lot easier to work with.
    – meagar
    12 hours ago
















Is using 4 boolean columns a requirement? That's not really the right way to build a tagging system. Typically you you use something like a tags table and a junction table joining posts to tags, which lets you have an arbitrary number of tags and makes the data a lot easier to work with.
– meagar
12 hours ago




Is using 4 boolean columns a requirement? That's not really the right way to build a tagging system. Typically you you use something like a tags table and a junction table joining posts to tags, which lets you have an arbitrary number of tags and makes the data a lot easier to work with.
– meagar
12 hours ago










1 Answer
1






active

oldest

votes

















up vote
1
down vote













There's a lot of great work here, I have a few suggestions, I'll start with a few recommended changes, and finish with some suggestions for improvements.



Let's firstly take a look at your migration.



Do not set a default on a foreign key column. Your user_id defaults to 0, which could be an actual user record, so if a record was ever (somehow) created or modified to without a user_id, it would suddenly belong to that user.



You can take this opportunity to add an index on the user_id for the posts table, it will make certain requests significantly faster, such as looking up all of the posts belonging to one user.



Moving on to your view.



You can add a method to your Post model to indicate if the post has no tags. Rather than using !post.tag_1 && !post.tag_2 && !post.tag_3 && !post.tag_4 in the view, we can make a method to handle that logic for us.



Imagine something like this in your Post model:



def no_tags?
!tag_1 && !tag_2 && !tag_3 && !tag_4
end


This would mean you could change your view from:



<% if !post.tag_1 && !post.tag_2 && !post.tag_3 && !post.tag_4 %>
<li>none</li>
<% end %>


to:



<% if post.no_tags? %>
<li>none</li>
<% end %>


which I think reads a lot more easily. This kind of method, where you're not modifying data but simply reading it, is sometimes refactored (tidied up) using design patterns like decorators or presenters. It's common to have methods that are really only used for the presentation of data, rather than manipulation, and those design patterns can help keep them away from the business logic of the model.



Those are the first minor changes I'd make to this code, without significantly changing the architecture. If you wanted to take it further, however, I would suggest the following.



It's clear from what you've said in your post that you can see there's something not quite right. Those conditionals in the view are probably the obvious 'smell'.



Think through a moment, and consider what you would do if you needed to add another tag.



You'd first need to add a column in the posts table, to store the boolean value. You'd need to modify our new no_tags? method to include tag_5, and you'd need to change the view to add another conditional, checking to see if tag_5 was present.



I think you'll be much better off if you define a many-to-many relationship between the Post model and a new Tag model. Each tag model can have a name, and your post model will has_and_belongs_to_many tags, allowing you to change your view code to something like:



<% post.tags.each do |tag| %>
<li><%= tag.name %></li>
<% end %>


I recommend you read the rails guide on relationships, specifically: https://guides.rubyonrails.org/association_basics.html#has-and-belongs-to-many-association-reference






share|improve this answer








New contributor




Dan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.


















  • Thank you so much for your kind reply. It's really helpful. The only thing that I'm still unclear is to not set a default value on a foreign key column. Should I allow NULL and not set a default, or should I keep it NOT NULL without setting a default? (It feels weird setting it NOT NULL without giving a default value. Is that a right thing to do?)
    – ta539tg70
    26 mins ago











Your Answer





StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
});
});
}, "mathjax-editing");

StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");

StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "196"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});






ta539tg70 is a new contributor. Be nice, and check out our Code of Conduct.










draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f208853%2fshowing-a-message-when-the-column-is-true%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes








up vote
1
down vote













There's a lot of great work here, I have a few suggestions, I'll start with a few recommended changes, and finish with some suggestions for improvements.



Let's firstly take a look at your migration.



Do not set a default on a foreign key column. Your user_id defaults to 0, which could be an actual user record, so if a record was ever (somehow) created or modified to without a user_id, it would suddenly belong to that user.



You can take this opportunity to add an index on the user_id for the posts table, it will make certain requests significantly faster, such as looking up all of the posts belonging to one user.



Moving on to your view.



You can add a method to your Post model to indicate if the post has no tags. Rather than using !post.tag_1 && !post.tag_2 && !post.tag_3 && !post.tag_4 in the view, we can make a method to handle that logic for us.



Imagine something like this in your Post model:



def no_tags?
!tag_1 && !tag_2 && !tag_3 && !tag_4
end


This would mean you could change your view from:



<% if !post.tag_1 && !post.tag_2 && !post.tag_3 && !post.tag_4 %>
<li>none</li>
<% end %>


to:



<% if post.no_tags? %>
<li>none</li>
<% end %>


which I think reads a lot more easily. This kind of method, where you're not modifying data but simply reading it, is sometimes refactored (tidied up) using design patterns like decorators or presenters. It's common to have methods that are really only used for the presentation of data, rather than manipulation, and those design patterns can help keep them away from the business logic of the model.



Those are the first minor changes I'd make to this code, without significantly changing the architecture. If you wanted to take it further, however, I would suggest the following.



It's clear from what you've said in your post that you can see there's something not quite right. Those conditionals in the view are probably the obvious 'smell'.



Think through a moment, and consider what you would do if you needed to add another tag.



You'd first need to add a column in the posts table, to store the boolean value. You'd need to modify our new no_tags? method to include tag_5, and you'd need to change the view to add another conditional, checking to see if tag_5 was present.



I think you'll be much better off if you define a many-to-many relationship between the Post model and a new Tag model. Each tag model can have a name, and your post model will has_and_belongs_to_many tags, allowing you to change your view code to something like:



<% post.tags.each do |tag| %>
<li><%= tag.name %></li>
<% end %>


I recommend you read the rails guide on relationships, specifically: https://guides.rubyonrails.org/association_basics.html#has-and-belongs-to-many-association-reference






share|improve this answer








New contributor




Dan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.


















  • Thank you so much for your kind reply. It's really helpful. The only thing that I'm still unclear is to not set a default value on a foreign key column. Should I allow NULL and not set a default, or should I keep it NOT NULL without setting a default? (It feels weird setting it NOT NULL without giving a default value. Is that a right thing to do?)
    – ta539tg70
    26 mins ago















up vote
1
down vote













There's a lot of great work here, I have a few suggestions, I'll start with a few recommended changes, and finish with some suggestions for improvements.



Let's firstly take a look at your migration.



Do not set a default on a foreign key column. Your user_id defaults to 0, which could be an actual user record, so if a record was ever (somehow) created or modified to without a user_id, it would suddenly belong to that user.



You can take this opportunity to add an index on the user_id for the posts table, it will make certain requests significantly faster, such as looking up all of the posts belonging to one user.



Moving on to your view.



You can add a method to your Post model to indicate if the post has no tags. Rather than using !post.tag_1 && !post.tag_2 && !post.tag_3 && !post.tag_4 in the view, we can make a method to handle that logic for us.



Imagine something like this in your Post model:



def no_tags?
!tag_1 && !tag_2 && !tag_3 && !tag_4
end


This would mean you could change your view from:



<% if !post.tag_1 && !post.tag_2 && !post.tag_3 && !post.tag_4 %>
<li>none</li>
<% end %>


to:



<% if post.no_tags? %>
<li>none</li>
<% end %>


which I think reads a lot more easily. This kind of method, where you're not modifying data but simply reading it, is sometimes refactored (tidied up) using design patterns like decorators or presenters. It's common to have methods that are really only used for the presentation of data, rather than manipulation, and those design patterns can help keep them away from the business logic of the model.



Those are the first minor changes I'd make to this code, without significantly changing the architecture. If you wanted to take it further, however, I would suggest the following.



It's clear from what you've said in your post that you can see there's something not quite right. Those conditionals in the view are probably the obvious 'smell'.



Think through a moment, and consider what you would do if you needed to add another tag.



You'd first need to add a column in the posts table, to store the boolean value. You'd need to modify our new no_tags? method to include tag_5, and you'd need to change the view to add another conditional, checking to see if tag_5 was present.



I think you'll be much better off if you define a many-to-many relationship between the Post model and a new Tag model. Each tag model can have a name, and your post model will has_and_belongs_to_many tags, allowing you to change your view code to something like:



<% post.tags.each do |tag| %>
<li><%= tag.name %></li>
<% end %>


I recommend you read the rails guide on relationships, specifically: https://guides.rubyonrails.org/association_basics.html#has-and-belongs-to-many-association-reference






share|improve this answer








New contributor




Dan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.


















  • Thank you so much for your kind reply. It's really helpful. The only thing that I'm still unclear is to not set a default value on a foreign key column. Should I allow NULL and not set a default, or should I keep it NOT NULL without setting a default? (It feels weird setting it NOT NULL without giving a default value. Is that a right thing to do?)
    – ta539tg70
    26 mins ago













up vote
1
down vote










up vote
1
down vote









There's a lot of great work here, I have a few suggestions, I'll start with a few recommended changes, and finish with some suggestions for improvements.



Let's firstly take a look at your migration.



Do not set a default on a foreign key column. Your user_id defaults to 0, which could be an actual user record, so if a record was ever (somehow) created or modified to without a user_id, it would suddenly belong to that user.



You can take this opportunity to add an index on the user_id for the posts table, it will make certain requests significantly faster, such as looking up all of the posts belonging to one user.



Moving on to your view.



You can add a method to your Post model to indicate if the post has no tags. Rather than using !post.tag_1 && !post.tag_2 && !post.tag_3 && !post.tag_4 in the view, we can make a method to handle that logic for us.



Imagine something like this in your Post model:



def no_tags?
!tag_1 && !tag_2 && !tag_3 && !tag_4
end


This would mean you could change your view from:



<% if !post.tag_1 && !post.tag_2 && !post.tag_3 && !post.tag_4 %>
<li>none</li>
<% end %>


to:



<% if post.no_tags? %>
<li>none</li>
<% end %>


which I think reads a lot more easily. This kind of method, where you're not modifying data but simply reading it, is sometimes refactored (tidied up) using design patterns like decorators or presenters. It's common to have methods that are really only used for the presentation of data, rather than manipulation, and those design patterns can help keep them away from the business logic of the model.



Those are the first minor changes I'd make to this code, without significantly changing the architecture. If you wanted to take it further, however, I would suggest the following.



It's clear from what you've said in your post that you can see there's something not quite right. Those conditionals in the view are probably the obvious 'smell'.



Think through a moment, and consider what you would do if you needed to add another tag.



You'd first need to add a column in the posts table, to store the boolean value. You'd need to modify our new no_tags? method to include tag_5, and you'd need to change the view to add another conditional, checking to see if tag_5 was present.



I think you'll be much better off if you define a many-to-many relationship between the Post model and a new Tag model. Each tag model can have a name, and your post model will has_and_belongs_to_many tags, allowing you to change your view code to something like:



<% post.tags.each do |tag| %>
<li><%= tag.name %></li>
<% end %>


I recommend you read the rails guide on relationships, specifically: https://guides.rubyonrails.org/association_basics.html#has-and-belongs-to-many-association-reference






share|improve this answer








New contributor




Dan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









There's a lot of great work here, I have a few suggestions, I'll start with a few recommended changes, and finish with some suggestions for improvements.



Let's firstly take a look at your migration.



Do not set a default on a foreign key column. Your user_id defaults to 0, which could be an actual user record, so if a record was ever (somehow) created or modified to without a user_id, it would suddenly belong to that user.



You can take this opportunity to add an index on the user_id for the posts table, it will make certain requests significantly faster, such as looking up all of the posts belonging to one user.



Moving on to your view.



You can add a method to your Post model to indicate if the post has no tags. Rather than using !post.tag_1 && !post.tag_2 && !post.tag_3 && !post.tag_4 in the view, we can make a method to handle that logic for us.



Imagine something like this in your Post model:



def no_tags?
!tag_1 && !tag_2 && !tag_3 && !tag_4
end


This would mean you could change your view from:



<% if !post.tag_1 && !post.tag_2 && !post.tag_3 && !post.tag_4 %>
<li>none</li>
<% end %>


to:



<% if post.no_tags? %>
<li>none</li>
<% end %>


which I think reads a lot more easily. This kind of method, where you're not modifying data but simply reading it, is sometimes refactored (tidied up) using design patterns like decorators or presenters. It's common to have methods that are really only used for the presentation of data, rather than manipulation, and those design patterns can help keep them away from the business logic of the model.



Those are the first minor changes I'd make to this code, without significantly changing the architecture. If you wanted to take it further, however, I would suggest the following.



It's clear from what you've said in your post that you can see there's something not quite right. Those conditionals in the view are probably the obvious 'smell'.



Think through a moment, and consider what you would do if you needed to add another tag.



You'd first need to add a column in the posts table, to store the boolean value. You'd need to modify our new no_tags? method to include tag_5, and you'd need to change the view to add another conditional, checking to see if tag_5 was present.



I think you'll be much better off if you define a many-to-many relationship between the Post model and a new Tag model. Each tag model can have a name, and your post model will has_and_belongs_to_many tags, allowing you to change your view code to something like:



<% post.tags.each do |tag| %>
<li><%= tag.name %></li>
<% end %>


I recommend you read the rails guide on relationships, specifically: https://guides.rubyonrails.org/association_basics.html#has-and-belongs-to-many-association-reference







share|improve this answer








New contributor




Dan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









share|improve this answer



share|improve this answer






New contributor




Dan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.









answered 21 hours ago









Dan

111




111




New contributor




Dan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.





New contributor





Dan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.






Dan is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.












  • Thank you so much for your kind reply. It's really helpful. The only thing that I'm still unclear is to not set a default value on a foreign key column. Should I allow NULL and not set a default, or should I keep it NOT NULL without setting a default? (It feels weird setting it NOT NULL without giving a default value. Is that a right thing to do?)
    – ta539tg70
    26 mins ago


















  • Thank you so much for your kind reply. It's really helpful. The only thing that I'm still unclear is to not set a default value on a foreign key column. Should I allow NULL and not set a default, or should I keep it NOT NULL without setting a default? (It feels weird setting it NOT NULL without giving a default value. Is that a right thing to do?)
    – ta539tg70
    26 mins ago
















Thank you so much for your kind reply. It's really helpful. The only thing that I'm still unclear is to not set a default value on a foreign key column. Should I allow NULL and not set a default, or should I keep it NOT NULL without setting a default? (It feels weird setting it NOT NULL without giving a default value. Is that a right thing to do?)
– ta539tg70
26 mins ago




Thank you so much for your kind reply. It's really helpful. The only thing that I'm still unclear is to not set a default value on a foreign key column. Should I allow NULL and not set a default, or should I keep it NOT NULL without setting a default? (It feels weird setting it NOT NULL without giving a default value. Is that a right thing to do?)
– ta539tg70
26 mins ago










ta539tg70 is a new contributor. Be nice, and check out our Code of Conduct.










draft saved

draft discarded


















ta539tg70 is a new contributor. Be nice, and check out our Code of Conduct.













ta539tg70 is a new contributor. Be nice, and check out our Code of Conduct.












ta539tg70 is a new contributor. Be nice, and check out our Code of Conduct.
















Thanks for contributing an answer to Code Review Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


Use MathJax to format equations. MathJax reference.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fcodereview.stackexchange.com%2fquestions%2f208853%2fshowing-a-message-when-the-column-is-true%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

List directoties down one level, excluding some named directories and files

list processes belonging to a network namespace

list systemd RuntimeDirectory mounts